home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1995 August: Tool Chest / Dev.CD Aug 95 TC / Dev.CD Aug 95 TC.toast / Tool Chest / Interfaces / UniversalInterfaces 2.1B1 / AIncludes / OCEAuthDir.a < prev    next >
Encoding:
Text File  |  1995-04-18  |  197.8 KB  |  5,102 lines  |  [TEXT/MPS ]

  1. ;
  2. ;    File:        OCEAuthDir.a
  3. ;
  4. ;    Contains:    Apple Open Collaboration Environment Authentication Interfaces.
  5. ;
  6. ;    Version:    Technology:    AOCE Toolbox 1.02
  7. ;                Package:    Universal Interfaces 2.1ß1 in “MPW Prerelease” on ETO #17
  8. ;
  9. ;    Copyright:    © 1984-1995 by Apple Computer, Inc.
  10. ;                All rights reserved.
  11. ;
  12. ;    Bugs?:        If you find a problem with this file, use the Apple Bug Reporter
  13. ;                stack.  Include the file and version information (from above)
  14. ;                in the problem description and send to:
  15. ;                    Internet:    apple.bugs@applelink.apple.com
  16. ;                    AppleLink:    APPLE.BUGS
  17. ;
  18. ;
  19.  
  20.     IF &TYPE('__OCEAUTHDIR__') = 'UNDEFINED' THEN
  21. __OCEAUTHDIR__ SET 1
  22.  
  23.  
  24.     IF &TYPE('__EVENTS__') = 'UNDEFINED' THEN
  25.     include 'Events.a'
  26.     ENDIF
  27. ;        include 'Types.a'                                            ;
  28. ;            include 'ConditionalMacros.a'                            ;
  29. ;        include 'Quickdraw.a'                                        ;
  30. ;            include 'MixedMode.a'                                    ;
  31. ;            include 'QuickdrawText.a'                                ;
  32. ;        include 'OSUtils.a'                                        ;
  33. ;            include 'Memory.a'                                        ;
  34.  
  35.     IF &TYPE('__NOTIFICATION__') = 'UNDEFINED' THEN
  36.     include 'Notification.a'
  37.     ENDIF
  38.  
  39.     IF &TYPE('__APPLEEVENTS__') = 'UNDEFINED' THEN
  40.     include 'AppleEvents.a'
  41.     ENDIF
  42. ;        include 'Errors.a'                                            ;
  43. ;        include 'EPPC.a'                                            ;
  44. ;            include 'AppleTalk.a'                                    ;
  45. ;            include 'Files.a'                                        ;
  46. ;            include 'PPCToolbox.a'                                    ;
  47. ;            include 'Processes.a'                                    ;
  48.  
  49.     IF &TYPE('__APPLETALK__') = 'UNDEFINED' THEN
  50.     include 'AppleTalk.a'
  51.     ENDIF
  52.  
  53.     IF &TYPE('__FILES__') = 'UNDEFINED' THEN
  54.     include 'Files.a'
  55.     ENDIF
  56.  
  57.     IF &TYPE('__OSUTILS__') = 'UNDEFINED' THEN
  58.     include 'OSUtils.a'
  59.     ENDIF
  60.  
  61.     IF &TYPE('__TYPES__') = 'UNDEFINED' THEN
  62.     include 'Types.a'
  63.     ENDIF
  64.  
  65.     IF &TYPE('__OCE__') = 'UNDEFINED' THEN
  66.     include 'OCE.a'
  67.     ENDIF
  68. ;        include 'Aliases.a'                                        ;
  69. ;        include 'Script.a'                                            ;
  70. ;            include 'IntlResources.a'                                ;
  71.  
  72. kRC4KeySizeInBytes                EQU        8                    ; size of an RC4 key 
  73. kRefNumUnknown                    EQU        0
  74.  
  75. kEnumDistinguishedNameBit        EQU        0
  76. kEnumAliasBit                    EQU        1
  77. kEnumPseudonymBit                EQU        2
  78. kEnumDNodeBit                    EQU        3
  79. kEnumInvisibleBit                EQU        4
  80.  
  81. ; Values of DirEnumChoices 
  82. kEnumDistinguishedNameMask        EQU        1
  83. kEnumAliasMask                    EQU        2
  84. kEnumPseudonymMask                EQU        4
  85. kEnumDNodeMask                    EQU        8
  86. kEnumInvisibleMask                EQU        16
  87. kEnumAllMask                    EQU        31
  88.  
  89. ; typedef unsigned long     DirEnumChoices
  90. ; Values of DirSortOption 
  91.  
  92. kSortByName                        EQU        0
  93. kSortByType                        EQU        1
  94.  
  95. ; Values of DirSortDirection 
  96. kSortForwards                    EQU        0
  97. kSortBackwards                    EQU        1
  98.  
  99. ; Values of DirMatchWith 
  100. kMatchAll                        EQU        0
  101. kExactMatch                        EQU        1
  102. kBeginsWith                        EQU        2
  103. kEndingWith                        EQU        3
  104. kContaining                        EQU        4
  105.  
  106. ; typedef unsigned char     DirMatchWith
  107.  
  108. kCurrentOCESortVersion            EQU        1
  109.  
  110. ;  Access controls are implemented on three levels:
  111. ; *      DNode, Record, and Attribute Type levels
  112. ; *  Some access control bits apply to the container itself, and some apply to its contents.
  113. ; *
  114. ; *  The Catalog Toolbox supports six functions.  These calls are:
  115. ; *  DSGetDNodeAccessControl : to get Access Controls at the DNode level
  116. ; *    DSGetRecordAccessControl  : to get Access Controls at the record level
  117. ; *  DSGetAttributeAccessControl : to get Access Privileges at the attribute type level
  118. ; * 
  119. ; *  The GetXXXAccessControl calls will return access control masks for various categories
  120. ; *  of users.  Please refer to the access control document for a description of the
  121. ; *  categories of users.  In general these are:
  122. ; *      ThisRecordOwner         - means the identity of the record itself
  123. ; *      Friends                  - means any one of the assigned friends for the record
  124. ; *      AuthenticatedInDNode     - means any valid user that is an authenticated entity
  125. ; *          in the DNode in which this record is located
  126. ; *      AuthenticatedInDirectory - means any valid authenticated catalog user
  127. ; *      Guest                      - means an unauthenticated user.
  128. ; *  Bit masks for various permitted access controls are defined below.
  129. ; *
  130. ; *  GetXXXAccessControl calls will return access control masks for various categories of
  131. ; *  users for this record. In addition they also return the level of access controls
  132. ; *  that the user (who is making the GetXXXAccessControl call) has for the DNode,
  133. ; *  record, or attribute type.
  134. ; *
  135. ; *  For records, the access control granted will be minimum of the DNode access
  136. ; *  control and record access control masks.  For example, to add an attribute type to a
  137. ; *  record, a user must have access control kCreateAttributeTypes at the record and
  138. ; *  DNode levels.  Similarly, at the attribute type level, access controls will be the
  139. ; *  minimum of the DNode, record, and attribute type access controls.
  140. ; *
  141. ; *  
  142. ; access categories bit numbers 
  143. kThisRecordOwnerBit                EQU        0
  144. kFriendsBit                        EQU        1
  145. kAuthenticatedInDNodeBit        EQU        2
  146. kAuthenticatedInDirectoryBit    EQU        3
  147. kGuestBit                        EQU        4
  148. kMeBit                            EQU        5
  149.  
  150. ; Values of CategoryMask 
  151. kThisRecordOwnerMask            EQU        1
  152. kFriendsMask                    EQU        2
  153. kAuthenticatedInDNodeMask        EQU        4
  154. kAuthenticatedInDirectoryMask    EQU        8
  155. kGuestMask                        EQU        16
  156. kMeMask                            EQU        32
  157.  
  158. kSeeBit                            EQU        0
  159. kAddBit                            EQU        1
  160. kDeleteBit                        EQU        2
  161. kChangeBit                        EQU        3
  162. kRenameBit                        EQU        4
  163. kChangePrivsBit                    EQU        5
  164. kSeeFoldersBit                    EQU        6
  165.  
  166. ; Values of AccessMask 
  167. kSeeMask                        EQU        1
  168. kAddMask                        EQU        2
  169. kDeleteMask                        EQU        4
  170. kChangeMask                        EQU        8
  171. kRenameMask                        EQU        16
  172. kChangePrivsMask                EQU        32
  173. kSeeFoldersMask                    EQU        64
  174.  
  175. kAllPrivs                        EQU        127
  176. kNoPrivs                        EQU        0
  177.  
  178. kSupportsDNodeNumberBit            EQU        0
  179. kSupportsRecordCreationIDBit    EQU        1
  180. kSupportsAttributeCreationIDBit    EQU        2
  181. kSupportsMatchAllBit            EQU        3
  182. kSupportsBeginsWithBit            EQU        4
  183. kSupportsExactMatchBit            EQU        5
  184. kSupportsEndsWithBit            EQU        6
  185. kSupportsContainsBit            EQU        7
  186. kSupportsOrderedEnumerationBit    EQU        8
  187. kCanSupportNameOrderBit            EQU        9
  188. kCanSupportTypeOrderBit            EQU        10
  189. kSupportSortBackwardsBit        EQU        11
  190. kSupportIndexRatioBit            EQU        12
  191. kSupportsEnumerationContinueBit    EQU        13
  192. kSupportsLookupContinueBit        EQU        14
  193. kSupportsEnumerateAttributeTypeContinueBit EQU        15
  194. kSupportsEnumeratePseudonymContinueBit EQU        16
  195. kSupportsAliasesBit                EQU        17
  196. kSupportsPseudonymsBit            EQU        18
  197. kSupportsPartialPathNamesBit    EQU        19
  198. kSupportsAuthenticationBit        EQU        20
  199. kSupportsProxiesBit                EQU        21
  200. kSupportsFindRecordBit            EQU        22
  201.  
  202. ; values of DirGestalt 
  203. kSupportsDNodeNumberMask        EQU        1
  204. kSupportsRecordCreationIDMask    EQU        2
  205. kSupportsAttributeCreationIDMask EQU        4
  206. kSupportsMatchAllMask            EQU        8
  207. kSupportsBeginsWithMask            EQU        16
  208. kSupportsExactMatchMask            EQU        32
  209. kSupportsEndsWithMask            EQU        64
  210. kSupportsContainsMask            EQU        128
  211. kSupportsOrderedEnumerationMask    EQU        256
  212. kCanSupportNameOrderMask        EQU        512
  213. kCanSupportTypeOrderMask        EQU        1024
  214. kSupportSortBackwardsMask        EQU        2048
  215. kSupportIndexRatioMask            EQU        4096
  216. kSupportsEnumerationContinueMask EQU        8192
  217. kSupportsLookupContinueMask        EQU        16384
  218. kSupportsEnumerateAttributeTypeContinueMask EQU        32768
  219. kSupportsEnumeratePseudonymContinueMask EQU        65536
  220. kSupportsAliasesMask            EQU        131072
  221. kSupportsPseudonymsMask            EQU        262144
  222. kSupportsPartialPathNamesMask    EQU        524288
  223. kSupportsAuthenticationMask        EQU        1048576
  224. kSupportsProxiesMask            EQU        2097152
  225. kSupportsFindRecordMask            EQU        4194304
  226.  
  227. kAuthLockLocalIdentityOp        EQU        1
  228. kAuthUnlockLocalIdentityOp        EQU        2
  229. kAuthLocalIdentityNameChangeOp    EQU        3
  230.  
  231. ; Values of AuthLocalIdentityLockAction 
  232. kAuthLockPending                EQU        1
  233. kAuthLockWillBeDone                EQU        2
  234.  
  235. ; Values of AuthNotifications 
  236. kNotifyLockBit                    EQU        0
  237. kNotifyUnlockBit                EQU        1
  238. kNotifyNameChangeBit            EQU        2
  239.  
  240. kNotifyLockMask                    EQU        1
  241. kNotifyUnlockMask                EQU        2
  242. kNotifyNameChangeMask            EQU        4
  243.  
  244. kPersonalDirectoryFileCreator    EQU        'kl03'
  245. kPersonalDirectoryFileType        EQU        'pabt'
  246. kBusinessCardFileType            EQU        'bust'
  247. kDirectoryFileType                EQU        'dirt'
  248. kDNodeFileType                    EQU        'dnod'
  249. kDirsRootFileType                EQU        'drtt'
  250. kRecordFileType                    EQU        'rcrd'
  251.  
  252. ; typedef unsigned short     DirSortOption
  253. ; typedef unsigned short     DirSortDirection
  254. ; typedef unsigned long     CategoryMask
  255. ; typedef unsigned long     AccessMask
  256. ; typedef unsigned long     DirGestalt
  257. ; typedef unsigned long     AuthLocalIdentityOp
  258. ; typedef unsigned long     AuthLocalIdentityLockAction
  259. ; typedef unsigned long     AuthNotifications
  260. DNodeID                 RECORD    0
  261. dNodeNumber                 ds.l   1        ; offset: $0 (0)        ; dNodenumber  
  262. reserved1                 ds.l   1        ; offset: $4 (4)
  263. name                     ds.l   1        ; offset: $8 (8)
  264. reserved2                 ds.l   1        ; offset: $C (12)
  265. sizeof                     EQU *            ; size:   $10 (16)
  266.                         ENDR
  267.  
  268. ; typedef struct DNodeID     DNodeID
  269. DirEnumSpec             RECORD    0
  270. enumFlag                 ds.l   1        ; offset: $0 (0)
  271. indexRatio                 ds.w   1        ; offset: $4 (4)        ; Approx Record Position between 1 and 100 If supported, 0 If not supported 
  272. recordIdentifier         ds.l   4        ; offset: $6 (6)
  273.                          ORG 6
  274. dNodeIdentifier             ds     DNodeID    ; offset: $6 (6)
  275.                          ORG 22
  276. sizeof                     EQU *            ; size:   $16 (22)
  277.                         ENDR
  278.  
  279. ; typedef struct DirEnumSpec  DirEnumSpec
  280. DirMetaInfo             RECORD    0
  281. info                     ds.l   4        ; offset: $0 (0)
  282. sizeof                     EQU *            ; size:   $10 (16)
  283.                         ENDR
  284.  
  285. ; typedef struct DirMetaInfo  DirMetaInfo
  286. SLRV                     RECORD    0
  287. script                     ds.w   1        ; offset: $0 (0)        ;   Script code in which entries are sorted 
  288. language                 ds.w   1        ; offset: $2 (2)        ;   Language code in which entries are sorted 
  289. regionCode                 ds.w   1        ; offset: $4 (4)        ;   Region code in which entries are sorted 
  290. version                     ds.w   1        ; offset: $6 (6)        ;  version of oce sorting software 
  291. sizeof                     EQU *            ; size:   $8 (8)
  292.                         ENDR
  293.  
  294. ; typedef struct SLRV         SLRV
  295. ; Catalog types and operations 
  296. ; unique identifier for an identity 
  297. ; typedef unsigned long     AuthIdentity
  298. ; Umbrella LocalIdentity 
  299. ; typedef AuthIdentity         LocalIdentity
  300. ; A DES key is 8 bytes of data 
  301. DESKey                     RECORD    0
  302. desA                     ds.l   1        ; offset: $0 (0)
  303. desB                     ds.l   1        ; offset: $4 (4)
  304. sizeof                     EQU *            ; size:   $8 (8)
  305.                         ENDR
  306.  
  307. ; typedef struct DESKey     DESKey
  308. ; typedef Byte                 RC4Key[kRC4KeySizeInBytes]
  309. ; typedef unsigned long     AuthKeyType
  310. ; key type followed by its data 
  311. AuthKey                 RECORD    0
  312. keyType                     ds.l   1        ; offset: $0 (0)
  313. des                         ds     DESKey    ; offset: $4 (4)
  314.                          ORG 4
  315. rc4                         ds.l   2        ; offset: $4 (4)
  316.                          ORG 12
  317. sizeof                     EQU *            ; size:   $C (12)
  318.                         ENDR
  319.  
  320. ; typedef struct AuthKey     AuthKey
  321. ; typedef AuthKey             *AuthKeyPtr
  322. ; typedef union AuthParamBlock  AuthParamBlock
  323. ; typedef AuthParamBlock     *AuthParamBlockPtr
  324. AuthResolveCreationIDPB RECORD    0
  325. qLink                     ds.l   1        ; offset: $0 (0)
  326. reserved1                 ds.l   1        ; offset: $4 (4)
  327. reserved2                 ds.l   1        ; offset: $8 (8)
  328. ioCompletion             ds.l   1        ; offset: $C (12)
  329. ioResult                 ds.w   1        ; offset: $10 (16)
  330. saveA5                     ds.l   1        ; offset: $12 (18)
  331. reqCode                     ds.w   1        ; offset: $16 (22)
  332. reserved                 ds.l   2        ; offset: $18 (24)
  333. serverHint                 ds     AddrBlock ; offset: $20 (32)
  334. dsRefNum                 ds.w   1        ; offset: $24 (36)
  335. callID                     ds.l   1        ; offset: $26 (38)
  336. identity                 ds.l   1        ; offset: $2A (42)
  337. gReserved1                 ds.l   1        ; offset: $2E (46)
  338. gReserved2                 ds.l   1        ; offset: $32 (50)
  339. gReserved3                 ds.l   1        ; offset: $36 (54)
  340. clientData                 ds.l   1        ; offset: $3A (58)
  341. userRecord                 ds.l   1        ; offset: $3E (62)        ;  --> OCE name(Record) of the user 
  342. bufferLength             ds.l   1        ; offset: $42 (66)        ;  --> Buffer Size to hold duplicate Info 
  343. buffer                     ds.l   1        ; offset: $46 (70)        ;  --> Buffer  to hold duplicate Info 
  344. totalMatches             ds.l   1        ; offset: $4A (74)        ; <--  Total Number of matching names found 
  345. actualMatches             ds.l   1        ; offset: $4E (78)        ; <--  Number of matches returned in the buffer 
  346. sizeof                     EQU *            ; size:   $52 (82)
  347.                         ENDR
  348.  
  349. ; typedef struct AuthResolveCreationIDPB  AuthResolveCreationIDPB
  350. ;
  351. ;kAuthBindSpecificIdentity:
  352. ;userRecord will contain the user information whose identity has to be
  353. ;verified. userKey will contain the userKey. An Identity is returned which
  354. ;binds the key and the userRecord. The identity returned can be used in the 'identity'
  355. ;field in the header portion (AuthParamHeader) for authenticating the Catalog and
  356. ;Authentication manager calls.
  357. ;
  358. AuthBindSpecificIdentityPB RECORD    0
  359. qLink                     ds.l   1        ; offset: $0 (0)
  360. reserved1                 ds.l   1        ; offset: $4 (4)
  361. reserved2                 ds.l   1        ; offset: $8 (8)
  362. ioCompletion             ds.l   1        ; offset: $C (12)
  363. ioResult                 ds.w   1        ; offset: $10 (16)
  364. saveA5                     ds.l   1        ; offset: $12 (18)
  365. reqCode                     ds.w   1        ; offset: $16 (22)
  366. reserved                 ds.l   2        ; offset: $18 (24)
  367. serverHint                 ds     AddrBlock ; offset: $20 (32)
  368. dsRefNum                 ds.w   1        ; offset: $24 (36)
  369. callID                     ds.l   1        ; offset: $26 (38)
  370. identity                 ds.l   1        ; offset: $2A (42)
  371. gReserved1                 ds.l   1        ; offset: $2E (46)
  372. gReserved2                 ds.l   1        ; offset: $32 (50)
  373. gReserved3                 ds.l   1        ; offset: $36 (54)
  374. clientData                 ds.l   1        ; offset: $3A (58)
  375. userIdentity             ds.l   1        ; offset: $3E (62)        ; <--  binding identity 
  376. userRecord                 ds.l   1        ; offset: $42 (66)        ;  --> OCE name(Record) of the user 
  377. userKey                     ds.l   1        ; offset: $46 (70)        ;  --> OCE Key for the user 
  378. sizeof                     EQU *            ; size:   $4A (74)
  379.                         ENDR
  380.  
  381. ; typedef struct AuthBindSpecificIdentityPB  AuthBindSpecificIdentityPB
  382. ;
  383. ;kAuthUnbindSpecificIdentity:
  384. ;This call will unbind the userRecord and key which were bind earlier.
  385. ;
  386. AuthUnbindSpecificIdentityPB RECORD    0
  387. qLink                     ds.l   1        ; offset: $0 (0)
  388. reserved1                 ds.l   1        ; offset: $4 (4)
  389. reserved2                 ds.l   1        ; offset: $8 (8)
  390. ioCompletion             ds.l   1        ; offset: $C (12)
  391. ioResult                 ds.w   1        ; offset: $10 (16)
  392. saveA5                     ds.l   1        ; offset: $12 (18)
  393. reqCode                     ds.w   1        ; offset: $16 (22)
  394. reserved                 ds.l   2        ; offset: $18 (24)
  395. serverHint                 ds     AddrBlock ; offset: $20 (32)
  396. dsRefNum                 ds.w   1        ; offset: $24 (36)
  397. callID                     ds.l   1        ; offset: $26 (38)
  398. identity                 ds.l   1        ; offset: $2A (42)
  399. gReserved1                 ds.l   1        ; offset: $2E (46)
  400. gReserved2                 ds.l   1        ; offset: $32 (50)
  401. gReserved3                 ds.l   1        ; offset: $36 (54)
  402. clientData                 ds.l   1        ; offset: $3A (58)
  403. userIdentity             ds.l   1        ; offset: $3E (62)        ;  --> identity to be deleted 
  404. sizeof                     EQU *            ; size:   $42 (66)
  405.                         ENDR
  406.  
  407. ; typedef struct AuthUnbindSpecificIdentityPB  AuthUnbindSpecificIdentityPB
  408. ;
  409. ;kAuthGetSpecificIdentityInfo:
  410. ;This call will return the userRecord for the given identity. Note: key is not
  411. ;returned because this would compromise security.
  412. ;
  413. AuthGetSpecificIdentityInfoPB RECORD    0
  414. qLink                     ds.l   1        ; offset: $0 (0)
  415. reserved1                 ds.l   1        ; offset: $4 (4)
  416. reserved2                 ds.l   1        ; offset: $8 (8)
  417. ioCompletion             ds.l   1        ; offset: $C (12)
  418. ioResult                 ds.w   1        ; offset: $10 (16)
  419. saveA5                     ds.l   1        ; offset: $12 (18)
  420. reqCode                     ds.w   1        ; offset: $16 (22)
  421. reserved                 ds.l   2        ; offset: $18 (24)
  422. serverHint                 ds     AddrBlock ; offset: $20 (32)
  423. dsRefNum                 ds.w   1        ; offset: $24 (36)
  424. callID                     ds.l   1        ; offset: $26 (38)
  425. identity                 ds.l   1        ; offset: $2A (42)
  426. gReserved1                 ds.l   1        ; offset: $2E (46)
  427. gReserved2                 ds.l   1        ; offset: $32 (50)
  428. gReserved3                 ds.l   1        ; offset: $36 (54)
  429. clientData                 ds.l   1        ; offset: $3A (58)
  430. userIdentity             ds.l   1        ; offset: $3E (62)        ;  --> identity of initiator 
  431. userRecord                 ds.l   1        ; offset: $42 (66)        ; <--  OCE name(Record) of the user 
  432. sizeof                     EQU *            ; size:   $46 (70)
  433.                         ENDR
  434.  
  435. ; typedef struct AuthGetSpecificIdentityInfoPB  AuthGetSpecificIdentityInfoPB
  436. ;
  437. ;kAuthAddKey:
  438. ;userRecord will contain the user information whose identity has to be
  439. ;created. userKey will point to the key to be created. password points to
  440. ;an RString containing the password used to generate the key.
  441. ;
  442. AuthAddKeyPB             RECORD    0
  443. qLink                     ds.l   1        ; offset: $0 (0)
  444. reserved1                 ds.l   1        ; offset: $4 (4)
  445. reserved2                 ds.l   1        ; offset: $8 (8)
  446. ioCompletion             ds.l   1        ; offset: $C (12)
  447. ioResult                 ds.w   1        ; offset: $10 (16)
  448. saveA5                     ds.l   1        ; offset: $12 (18)
  449. reqCode                     ds.w   1        ; offset: $16 (22)
  450. reserved                 ds.l   2        ; offset: $18 (24)
  451. serverHint                 ds     AddrBlock ; offset: $20 (32)
  452. dsRefNum                 ds.w   1        ; offset: $24 (36)
  453. callID                     ds.l   1        ; offset: $26 (38)
  454. identity                 ds.l   1        ; offset: $2A (42)
  455. gReserved1                 ds.l   1        ; offset: $2E (46)
  456. gReserved2                 ds.l   1        ; offset: $32 (50)
  457. gReserved3                 ds.l   1        ; offset: $36 (54)
  458. clientData                 ds.l   1        ; offset: $3A (58)
  459. userRecord                 ds.l   1        ; offset: $3E (62)        ;  --> OCE name(Record) of the user 
  460. userKey                     ds.l   1        ; offset: $42 (66)        ; <--  OCE Key for the user 
  461. password                 ds.l   1        ; offset: $46 (70)        ;  --> Pointer to password string 
  462. sizeof                     EQU *            ; size:   $4A (74)
  463.                         ENDR
  464.  
  465. ; typedef struct AuthAddKeyPB  AuthAddKeyPB
  466. ;
  467. ;kAuthChangeKey:
  468. ;userRecord will contain the user information whose identity has to be
  469. ;created. userKey will point to the key to be created. password points to
  470. ;an RString containing the password used to generate the key.
  471. ;
  472. AuthChangeKeyPB         RECORD    0
  473. qLink                     ds.l   1        ; offset: $0 (0)
  474. reserved1                 ds.l   1        ; offset: $4 (4)
  475. reserved2                 ds.l   1        ; offset: $8 (8)
  476. ioCompletion             ds.l   1        ; offset: $C (12)
  477. ioResult                 ds.w   1        ; offset: $10 (16)
  478. saveA5                     ds.l   1        ; offset: $12 (18)
  479. reqCode                     ds.w   1        ; offset: $16 (22)
  480. reserved                 ds.l   2        ; offset: $18 (24)
  481. serverHint                 ds     AddrBlock ; offset: $20 (32)
  482. dsRefNum                 ds.w   1        ; offset: $24 (36)
  483. callID                     ds.l   1        ; offset: $26 (38)
  484. identity                 ds.l   1        ; offset: $2A (42)
  485. gReserved1                 ds.l   1        ; offset: $2E (46)
  486. gReserved2                 ds.l   1        ; offset: $32 (50)
  487. gReserved3                 ds.l   1        ; offset: $36 (54)
  488. clientData                 ds.l   1        ; offset: $3A (58)
  489. userRecord                 ds.l   1        ; offset: $3E (62)        ;  --> OCE name(Record) of the user 
  490. userKey                     ds.l   1        ; offset: $42 (66)        ; <--  New OCE Key for the user 
  491. password                 ds.l   1        ; offset: $46 (70)        ;  -->Pointer to the new password string 
  492. sizeof                     EQU *            ; size:   $4A (74)
  493.                         ENDR
  494.  
  495. ; typedef struct AuthChangeKeyPB  AuthChangeKeyPB
  496. ;
  497. ;AuthDeleteKey:
  498. ;userRecord will contain the user information whose Key has to be deleted.
  499. ;
  500. AuthDeleteKeyPB         RECORD    0
  501. qLink                     ds.l   1        ; offset: $0 (0)
  502. reserved1                 ds.l   1        ; offset: $4 (4)
  503. reserved2                 ds.l   1        ; offset: $8 (8)
  504. ioCompletion             ds.l   1        ; offset: $C (12)
  505. ioResult                 ds.w   1        ; offset: $10 (16)
  506. saveA5                     ds.l   1        ; offset: $12 (18)
  507. reqCode                     ds.w   1        ; offset: $16 (22)
  508. reserved                 ds.l   2        ; offset: $18 (24)
  509. serverHint                 ds     AddrBlock ; offset: $20 (32)
  510. dsRefNum                 ds.w   1        ; offset: $24 (36)
  511. callID                     ds.l   1        ; offset: $26 (38)
  512. identity                 ds.l   1        ; offset: $2A (42)
  513. gReserved1                 ds.l   1        ; offset: $2E (46)
  514. gReserved2                 ds.l   1        ; offset: $32 (50)
  515. gReserved3                 ds.l   1        ; offset: $36 (54)
  516. clientData                 ds.l   1        ; offset: $3A (58)
  517. userRecord                 ds.l   1        ; offset: $3E (62)        ;  --> OCE name(Record) of the user 
  518. sizeof                     EQU *            ; size:   $42 (66)
  519.                         ENDR
  520.  
  521. ; typedef struct AuthDeleteKeyPB  AuthDeleteKeyPB
  522. ; AuthPasswordToKey: Converts an RString into a key. 
  523. AuthPasswordToKeyPB     RECORD    0
  524. qLink                     ds.l   1        ; offset: $0 (0)
  525. reserved1                 ds.l   1        ; offset: $4 (4)
  526. reserved2                 ds.l   1        ; offset: $8 (8)
  527. ioCompletion             ds.l   1        ; offset: $C (12)
  528. ioResult                 ds.w   1        ; offset: $10 (16)
  529. saveA5                     ds.l   1        ; offset: $12 (18)
  530. reqCode                     ds.w   1        ; offset: $16 (22)
  531. reserved                 ds.l   2        ; offset: $18 (24)
  532. serverHint                 ds     AddrBlock ; offset: $20 (32)
  533. dsRefNum                 ds.w   1        ; offset: $24 (36)
  534. callID                     ds.l   1        ; offset: $26 (38)
  535. identity                 ds.l   1        ; offset: $2A (42)
  536. gReserved1                 ds.l   1        ; offset: $2E (46)
  537. gReserved2                 ds.l   1        ; offset: $32 (50)
  538. gReserved3                 ds.l   1        ; offset: $36 (54)
  539. clientData                 ds.l   1        ; offset: $3A (58)
  540. userRecord                 ds.l   1        ; offset: $3E (62)        ;  --> OCE name(Record) of the user 
  541. key                         ds.l   1        ; offset: $42 (66)        ; <--  
  542. password                 ds.l   1        ; offset: $46 (70)        ;  -->Pointer to the new password string 
  543. sizeof                     EQU *            ; size:   $4A (74)
  544.                         ENDR
  545.  
  546. ; typedef struct AuthPasswordToKeyPB  AuthPasswordToKeyPB
  547. ;
  548. ;kAuthGetCredentials:
  549. ;userRecord will contain the user information whose identity has to be
  550. ;kMailDeletedMask. keyType (e.g. asDESKey) will indicate what type of key has to
  551. ;be deleted.
  552. ;
  553. AuthGetCredentialsPB     RECORD    0
  554. qLink                     ds.l   1        ; offset: $0 (0)
  555. reserved1                 ds.l   1        ; offset: $4 (4)
  556. reserved2                 ds.l   1        ; offset: $8 (8)
  557. ioCompletion             ds.l   1        ; offset: $C (12)
  558. ioResult                 ds.w   1        ; offset: $10 (16)
  559. saveA5                     ds.l   1        ; offset: $12 (18)
  560. reqCode                     ds.w   1        ; offset: $16 (22)
  561. reserved                 ds.l   2        ; offset: $18 (24)
  562. serverHint                 ds     AddrBlock ; offset: $20 (32)
  563. dsRefNum                 ds.w   1        ; offset: $24 (36)
  564. callID                     ds.l   1        ; offset: $26 (38)
  565. identity                 ds.l   1        ; offset: $2A (42)
  566. gReserved1                 ds.l   1        ; offset: $2E (46)
  567. gReserved2                 ds.l   1        ; offset: $32 (50)
  568. gReserved3                 ds.l   1        ; offset: $36 (54)
  569. clientData                 ds.l   1        ; offset: $3A (58)
  570. userIdentity             ds.l   1        ; offset: $3E (62)        ;  --> identity of initiator 
  571. recipient                 ds.l   1        ; offset: $42 (66)        ;  --> OCE name of recipient 
  572. sessionKey                 ds.l   1        ; offset: $46 (70)        ; <--  session key 
  573. expiry                     ds.l   1        ; offset: $4A (74)        ; <--> desired/actual expiry 
  574. credentialsLength         ds.l   1        ; offset: $4E (78)        ; <--> max/actual credentials size 
  575. credentials                 ds.l   1        ; offset: $52 (82)        ; <--  buffer where credentials are returned 
  576. sizeof                     EQU *            ; size:   $56 (86)
  577.                         ENDR
  578.  
  579. ; typedef struct AuthGetCredentialsPB  AuthGetCredentialsPB
  580. ;
  581. ;AuthDecryptCredentialsPB:
  582. ;Changes:
  583. ;userKey is changed userIdentity.
  584. ;userRecord is changed to initiatorRecord. User must supply buffer
  585. ;to hold initiatorRecord.
  586. ;agentList has changed to agent. There wil be no call back.
  587. ;User must supply buffer to hold agent Record.
  588. ;An additional boolean parameter 'hasAgent' is included.
  589. ;Toolbox will set this if an 'Agent' record is found in the
  590. ;credentials. If RecordIDPtr is 'nil', no agent record will
  591. ;be copied. However user can examine 'hasAgent', If true user
  592. ;can reissue this call with apprpriate buffer for getting a recordID.
  593. ;agent has changed to intermediary.  User must supply buffer to hold 
  594. ;intermediary Record.  The toolbox will set 'hasIntermediary' if an
  595. ;'intermediary' record is found in the credentials. 
  596. ;
  597. AuthDecryptCredentialsPB RECORD    0
  598. qLink                     ds.l   1        ; offset: $0 (0)
  599. reserved1                 ds.l   1        ; offset: $4 (4)
  600. reserved2                 ds.l   1        ; offset: $8 (8)
  601. ioCompletion             ds.l   1        ; offset: $C (12)
  602. ioResult                 ds.w   1        ; offset: $10 (16)
  603. saveA5                     ds.l   1        ; offset: $12 (18)
  604. reqCode                     ds.w   1        ; offset: $16 (22)
  605. reserved                 ds.l   2        ; offset: $18 (24)
  606. serverHint                 ds     AddrBlock ; offset: $20 (32)
  607. dsRefNum                 ds.w   1        ; offset: $24 (36)
  608. callID                     ds.l   1        ; offset: $26 (38)
  609. identity                 ds.l   1        ; offset: $2A (42)
  610. gReserved1                 ds.l   1        ; offset: $2E (46)
  611. gReserved2                 ds.l   1        ; offset: $32 (50)
  612. gReserved3                 ds.l   1        ; offset: $36 (54)
  613. clientData                 ds.l   1        ; offset: $3A (58)
  614. userIdentity             ds.l   1        ; offset: $3E (62)        ;  --> user's Identity 
  615. initiatorRecord             ds.l   1        ; offset: $42 (66)        ; <--  OCE name of the initiator 
  616. sessionKey                 ds.l   1        ; offset: $46 (70)        ; <--  session key 
  617. expiry                     ds.l   1        ; offset: $4A (74)        ; <--  credentials expiry time 
  618. credentialsLength         ds.l   1        ; offset: $4E (78)        ;  --> actual credentials size 
  619. credentials                 ds.l   1        ; offset: $52 (82)        ;  --> credentials to be decrypted 
  620. issueTime                 ds.l   1        ; offset: $56 (86)        ; <--  credentials expiry time 
  621. hasIntermediary             ds.b   1        ; offset: $5A (90)        ; <--  if true, An intermediary Record was found in credentials 
  622. filler1                     ds.b   1        ; offset: $5B (91)
  623. intermediary             ds.l   1        ; offset: $5C (92)        ; <--  recordID of the intermediary 
  624. sizeof                     EQU *            ; size:   $60 (96)
  625.                         ENDR
  626.  
  627. ; typedef struct AuthDecryptCredentialsPB  AuthDecryptCredentialsPB
  628. AuthMakeChallengePB     RECORD    0
  629. qLink                     ds.l   1        ; offset: $0 (0)
  630. reserved1                 ds.l   1        ; offset: $4 (4)
  631. reserved2                 ds.l   1        ; offset: $8 (8)
  632. ioCompletion             ds.l   1        ; offset: $C (12)
  633. ioResult                 ds.w   1        ; offset: $10 (16)
  634. saveA5                     ds.l   1        ; offset: $12 (18)
  635. reqCode                     ds.w   1        ; offset: $16 (22)
  636. reserved                 ds.l   2        ; offset: $18 (24)
  637. serverHint                 ds     AddrBlock ; offset: $20 (32)
  638. dsRefNum                 ds.w   1        ; offset: $24 (36)
  639. callID                     ds.l   1        ; offset: $26 (38)
  640. identity                 ds.l   1        ; offset: $2A (42)
  641. gReserved1                 ds.l   1        ; offset: $2E (46)
  642. gReserved2                 ds.l   1        ; offset: $32 (50)
  643. gReserved3                 ds.l   1        ; offset: $36 (54)
  644. clientData                 ds.l   1        ; offset: $3A (58)
  645. key                         ds.l   1        ; offset: $3E (62)        ;  --> UnEncrypted SessionKey 
  646. challenge                 ds.l   1        ; offset: $42 (66)        ; <--  Encrypted Challenge 
  647. challengeBufferLength     ds.l   1        ; offset: $46 (70)        ;  ->length of challenge buffer 
  648. challengeLength             ds.l   1        ; offset: $4A (74)        ;  <-length of Encrypted Challenge 
  649. sizeof                     EQU *            ; size:   $4E (78)
  650.                         ENDR
  651.  
  652. ; typedef struct AuthMakeChallengePB  AuthMakeChallengePB
  653. AuthMakeReplyPB         RECORD    0
  654. qLink                     ds.l   1        ; offset: $0 (0)
  655. reserved1                 ds.l   1        ; offset: $4 (4)
  656. reserved2                 ds.l   1        ; offset: $8 (8)
  657. ioCompletion             ds.l   1        ; offset: $C (12)
  658. ioResult                 ds.w   1        ; offset: $10 (16)
  659. saveA5                     ds.l   1        ; offset: $12 (18)
  660. reqCode                     ds.w   1        ; offset: $16 (22)
  661. reserved                 ds.l   2        ; offset: $18 (24)
  662. serverHint                 ds     AddrBlock ; offset: $20 (32)
  663. dsRefNum                 ds.w   1        ; offset: $24 (36)
  664. callID                     ds.l   1        ; offset: $26 (38)
  665. identity                 ds.l   1        ; offset: $2A (42)
  666. gReserved1                 ds.l   1        ; offset: $2E (46)
  667. gReserved2                 ds.l   1        ; offset: $32 (50)
  668. gReserved3                 ds.l   1        ; offset: $36 (54)
  669. clientData                 ds.l   1        ; offset: $3A (58)
  670. key                         ds.l   1        ; offset: $3E (62)        ;  --> UnEncrypted SessionKey 
  671. challenge                 ds.l   1        ; offset: $42 (66)        ;  --> Encrypted Challenge 
  672. reply                     ds.l   1        ; offset: $46 (70)        ; <--  Encrypted Reply 
  673. replyBufferLength         ds.l   1        ; offset: $4A (74)        ;  -->length of challenge buffer 
  674. challengeLength             ds.l   1        ; offset: $4E (78)        ;  --> length of Encrypted Challenge 
  675. replyLength                 ds.l   1        ; offset: $52 (82)        ; <--  length of Encrypted Reply 
  676. sizeof                     EQU *            ; size:   $56 (86)
  677.                         ENDR
  678.  
  679. ; typedef struct AuthMakeReplyPB  AuthMakeReplyPB
  680. AuthVerifyReplyPB         RECORD    0
  681. qLink                     ds.l   1        ; offset: $0 (0)
  682. reserved1                 ds.l   1        ; offset: $4 (4)
  683. reserved2                 ds.l   1        ; offset: $8 (8)
  684. ioCompletion             ds.l   1        ; offset: $C (12)
  685. ioResult                 ds.w   1        ; offset: $10 (16)
  686. saveA5                     ds.l   1        ; offset: $12 (18)
  687. reqCode                     ds.w   1        ; offset: $16 (22)
  688. reserved                 ds.l   2        ; offset: $18 (24)
  689. serverHint                 ds     AddrBlock ; offset: $20 (32)
  690. dsRefNum                 ds.w   1        ; offset: $24 (36)
  691. callID                     ds.l   1        ; offset: $26 (38)
  692. identity                 ds.l   1        ; offset: $2A (42)
  693. gReserved1                 ds.l   1        ; offset: $2E (46)
  694. gReserved2                 ds.l   1        ; offset: $32 (50)
  695. gReserved3                 ds.l   1        ; offset: $36 (54)
  696. clientData                 ds.l   1        ; offset: $3A (58)
  697. key                         ds.l   1        ; offset: $3E (62)        ;  --> UnEncrypted SessionKey 
  698. challenge                 ds.l   1        ; offset: $42 (66)        ;  --> Encrypted Challenge 
  699. reply                     ds.l   1        ; offset: $46 (70)        ;  --> Encrypted Reply 
  700. challengeLength             ds.l   1        ; offset: $4A (74)        ;  --> length of Encrypted Challenge 
  701. replyLength                 ds.l   1        ; offset: $4E (78)        ;  --> length of Encrypted Reply 
  702. sizeof                     EQU *            ; size:   $52 (82)
  703.                         ENDR
  704.  
  705. ; typedef struct AuthVerifyReplyPB  AuthVerifyReplyPB
  706. ;
  707. ;kAuthGetUTCTime:
  708. ;RLI will contain a valid RLI for a cluster server.
  709. ;UTC(GMT) time from one of the cluster server will be returned.
  710. ;An 'offSet' from UTC(GMT) to Mac Local Time will also be returned.
  711. ;If RLI is nil Map DA is used to determine UTC(GMT).
  712. ;Mac Local Time = theUTCTime + theUTCOffset.
  713. ;
  714. AuthGetUTCTimePB         RECORD    0
  715. qLink                     ds.l   1        ; offset: $0 (0)
  716. reserved1                 ds.l   1        ; offset: $4 (4)
  717. reserved2                 ds.l   1        ; offset: $8 (8)
  718. ioCompletion             ds.l   1        ; offset: $C (12)
  719. ioResult                 ds.w   1        ; offset: $10 (16)
  720. saveA5                     ds.l   1        ; offset: $12 (18)
  721. reqCode                     ds.w   1        ; offset: $16 (22)
  722. reserved                 ds.l   2        ; offset: $18 (24)
  723. serverHint                 ds     AddrBlock ; offset: $20 (32)
  724. dsRefNum                 ds.w   1        ; offset: $24 (36)
  725. callID                     ds.l   1        ; offset: $26 (38)
  726. identity                 ds.l   1        ; offset: $2A (42)
  727. gReserved1                 ds.l   1        ; offset: $2E (46)
  728. gReserved2                 ds.l   1        ; offset: $32 (50)
  729. gReserved3                 ds.l   1        ; offset: $36 (54)
  730. clientData                 ds.l   1        ; offset: $3A (58)
  731. pRLI                     ds.l   1        ; offset: $3E (62)        ;  --> packed RLI of the Node, whose server's UTC is requested 
  732. theUTCTime                 ds.l   1        ; offset: $42 (66)        ; <--  current UTC(GMT) Time utc seconds since 1/1/1904 
  733. theUTCOffset             ds.l   1        ; offset: $46 (70)        ; <--  offset from UTC(GMT) seconds EAST of Greenwich 
  734. sizeof                     EQU *            ; size:   $4A (74)
  735.                         ENDR
  736.  
  737. ; typedef struct AuthGetUTCTimePB  AuthGetUTCTimePB
  738. ;
  739. ;kAuthMakeProxy:
  740. ;A user represented bu the 'userIdentity' can make a proxy using this call.
  741. ;'recipient' is the RecordID of the recipient whom user is requesting proxy.
  742. ;'intermediary' is the RecordID of the intermediary holding proxy for the user.
  743. ;'firstValid' is time at which proxy becomes valid.
  744. ;'expiry' is the time at which proxy must expire.
  745. ;'proxyLength' will have the length of the buffer pointed by 'proxy' as input.
  746. ;When the call completes, it will hold the actual length of proxy. If the
  747. ;call completes 'kOCEMoreData' error, client can reissue the call with the
  748. ;buffer size as 'proxyLength' returned.
  749. ;expiry is a suggestion, and may be adjusted to be earlier by the ADAP/OCE server.
  750. ;The 'proxy' obtained like this might be used by the 'intermediary' to obtain credentials
  751. ;for the server using TradeProxyForCredentials call.
  752. ;authDataLength and authData are intended for possible future work, but are
  753. ;ignored for now.
  754. ;
  755. AuthMakeProxyPB         RECORD    0
  756. qLink                     ds.l   1        ; offset: $0 (0)
  757. reserved1                 ds.l   1        ; offset: $4 (4)
  758. reserved2                 ds.l   1        ; offset: $8 (8)
  759. ioCompletion             ds.l   1        ; offset: $C (12)
  760. ioResult                 ds.w   1        ; offset: $10 (16)
  761. saveA5                     ds.l   1        ; offset: $12 (18)
  762. reqCode                     ds.w   1        ; offset: $16 (22)
  763. reserved                 ds.l   2        ; offset: $18 (24)
  764. serverHint                 ds     AddrBlock ; offset: $20 (32)
  765. dsRefNum                 ds.w   1        ; offset: $24 (36)
  766. callID                     ds.l   1        ; offset: $26 (38)
  767. identity                 ds.l   1        ; offset: $2A (42)
  768. gReserved1                 ds.l   1        ; offset: $2E (46)
  769. gReserved2                 ds.l   1        ; offset: $32 (50)
  770. gReserved3                 ds.l   1        ; offset: $36 (54)
  771. clientData                 ds.l   1        ; offset: $3A (58)
  772. userIdentity             ds.l   1        ; offset: $3E (62)        ;  --> identity of principal 
  773. recipient                 ds.l   1        ; offset: $42 (66)        ;  --> OCE name of recipient 
  774. firstValid                 ds.l   1        ; offset: $46 (70)        ;  --> time at which proxy becomes valid 
  775. expiry                     ds.l   1        ; offset: $4A (74)        ;  --> time at which proxy expires 
  776. authDataLength             ds.l   1        ; offset: $4E (78)        ;  --> size of authorization data 
  777. authData                 ds.l   1        ; offset: $52 (82)        ;  --> pointer to authorization data 
  778. proxyLength                 ds.l   1        ; offset: $56 (86)        ; <--> max/actual proxy size 
  779. proxy                     ds.l   1        ; offset: $5A (90)        ; <--> buffer where proxy is returned 
  780. intermediary             ds.l   1        ; offset: $5E (94)        ;  --> RecordID of intermediary 
  781. sizeof                     EQU *            ; size:   $62 (98)
  782.                         ENDR
  783.  
  784. ; typedef struct AuthMakeProxyPB  AuthMakeProxyPB
  785. ;
  786. ;kAuthTradeProxyForCredentials:
  787. ;Using this call, intermediary holding a 'proxy' for a recipient may obtain credentials
  788. ;for that recipient. 'userIdentity' is the identity for the 'intermediary'.
  789. ;'recipient' is the RecordID for whom credetials are requested.
  790. ;'principal' is the RecordID of the user who created the proxy.
  791. ;'proxyLength' is the length of data pointed by 'proxy.
  792. ;If the call is succesfull, credentials will be returned in the
  793. ;buffer pointed by 'credentials'. 'expiry' is the desired expiry time at input.
  794. ;When call succeds this will have expiry time of credentials.
  795. ;This is very similar to GetCredentials except that we (of course) need the proxy,
  796. ;but we also need the name of the principal who created the proxy.
  797. ;
  798. AuthTradeProxyForCredentialsPB RECORD    0
  799. qLink                     ds.l   1        ; offset: $0 (0)
  800. reserved1                 ds.l   1        ; offset: $4 (4)
  801. reserved2                 ds.l   1        ; offset: $8 (8)
  802. ioCompletion             ds.l   1        ; offset: $C (12)
  803. ioResult                 ds.w   1        ; offset: $10 (16)
  804. saveA5                     ds.l   1        ; offset: $12 (18)
  805. reqCode                     ds.w   1        ; offset: $16 (22)
  806. reserved                 ds.l   2        ; offset: $18 (24)
  807. serverHint                 ds     AddrBlock ; offset: $20 (32)
  808. dsRefNum                 ds.w   1        ; offset: $24 (36)
  809. callID                     ds.l   1        ; offset: $26 (38)
  810. identity                 ds.l   1        ; offset: $2A (42)
  811. gReserved1                 ds.l   1        ; offset: $2E (46)
  812. gReserved2                 ds.l   1        ; offset: $32 (50)
  813. gReserved3                 ds.l   1        ; offset: $36 (54)
  814. clientData                 ds.l   1        ; offset: $3A (58)
  815. userIdentity             ds.l   1        ; offset: $3E (62)        ;  --> identity of intermediary 
  816. recipient                 ds.l   1        ; offset: $42 (66)        ;  --> OCE name of recipient 
  817. sessionKey                 ds.l   1        ; offset: $46 (70)        ; <--  session key 
  818. expiry                     ds.l   1        ; offset: $4A (74)        ; <--> desired/actual expiry 
  819. credentialsLength         ds.l   1        ; offset: $4E (78)        ; <--> max/actual credentials size 
  820. credentials                 ds.l   1        ; offset: $52 (82)        ; <--> buffer where credentials are returned 
  821. proxyLength                 ds.l   1        ; offset: $56 (86)        ;  --> actual proxy size 
  822. proxy                     ds.l   1        ; offset: $5A (90)        ;  --> buffer containing proxy 
  823. principal                 ds.l   1        ; offset: $5E (94)        ;  --> RecordID of principal 
  824. sizeof                     EQU *            ; size:   $62 (98)
  825.                         ENDR
  826.  
  827. ; typedef struct AuthTradeProxyForCredentialsPB  AuthTradeProxyForCredentialsPB
  828. ; API for Local Identity Interface 
  829. ;
  830. ;AuthGetLocalIdentityPB:
  831. ;A Collaborative application intended to work under the umbrella of LocalIdentity
  832. ;for the OCE toolbox will have to make this call to obtain LocalIdentity.
  833. ;If LocalIdentity has not been setup, then application will get
  834. ;'kOCEOCESetupRequired.'. In this case application should put the dialog
  835. ;recommended by the OCE Setup document and guide the user through OCE Setup.
  836. ;If the OCESetup contains local identity, but user has not unlocked, it will get
  837. ;kOCELocalAuthenticationFail. In this case application should use SDPPromptForLocalIdentity
  838. ;to prompt user for the password.
  839. ;If a backGround application or stand alone code requires LocalIdentity, if it gets the
  840. ;OSErr from LocalIdentity and can not call SDPPromptForLocalIdentity, it should it self
  841. ;register with the toolbox using kAuthAddToLocalIdentityQueue call. It will be notified
  842. ;when a LocalIdentity gets created by a foreground application.
  843. ;
  844. AuthGetLocalIdentityPB     RECORD    0
  845. qLink                     ds.l   1        ; offset: $0 (0)
  846. reserved1                 ds.l   1        ; offset: $4 (4)
  847. reserved2                 ds.l   1        ; offset: $8 (8)
  848. ioCompletion             ds.l   1        ; offset: $C (12)
  849. ioResult                 ds.w   1        ; offset: $10 (16)
  850. saveA5                     ds.l   1        ; offset: $12 (18)
  851. reqCode                     ds.w   1        ; offset: $16 (22)
  852. reserved                 ds.l   2        ; offset: $18 (24)
  853. serverHint                 ds     AddrBlock ; offset: $20 (32)
  854. dsRefNum                 ds.w   1        ; offset: $24 (36)
  855. callID                     ds.l   1        ; offset: $26 (38)
  856. identity                 ds.l   1        ; offset: $2A (42)
  857. gReserved1                 ds.l   1        ; offset: $2E (46)
  858. gReserved2                 ds.l   1        ; offset: $32 (50)
  859. gReserved3                 ds.l   1        ; offset: $36 (54)
  860. clientData                 ds.l   1        ; offset: $3A (58)
  861. theLocalIdentity         ds.l   1        ; offset: $3E (62)        ; <--  LocalIdentity 
  862. sizeof                     EQU *            ; size:   $42 (66)
  863.                         ENDR
  864.  
  865. ; typedef struct AuthGetLocalIdentityPB  AuthGetLocalIdentityPB
  866. ;
  867. ;kAuthUnlockLocalIdentity:
  868. ;The LocalIdentity can be created using this call.
  869. ;The userName and password correspond to the LocalIdentity setup.
  870. ;If the password matches, then collabIdentity will be returned.
  871. ;Typically SDPPromptForLocalIdentity call will make this call.
  872. ;All applications which are registered through kAuthAddToLocalIdentityQueue
  873. ;will be notified.
  874. ;
  875. AuthUnlockLocalIdentityPB RECORD    0
  876. qLink                     ds.l   1        ; offset: $0 (0)
  877. reserved1                 ds.l   1        ; offset: $4 (4)
  878. reserved2                 ds.l   1        ; offset: $8 (8)
  879. ioCompletion             ds.l   1        ; offset: $C (12)
  880. ioResult                 ds.w   1        ; offset: $10 (16)
  881. saveA5                     ds.l   1        ; offset: $12 (18)
  882. reqCode                     ds.w   1        ; offset: $16 (22)
  883. reserved                 ds.l   2        ; offset: $18 (24)
  884. serverHint                 ds     AddrBlock ; offset: $20 (32)
  885. dsRefNum                 ds.w   1        ; offset: $24 (36)
  886. callID                     ds.l   1        ; offset: $26 (38)
  887. identity                 ds.l   1        ; offset: $2A (42)
  888. gReserved1                 ds.l   1        ; offset: $2E (46)
  889. gReserved2                 ds.l   1        ; offset: $32 (50)
  890. gReserved3                 ds.l   1        ; offset: $36 (54)
  891. clientData                 ds.l   1        ; offset: $3A (58)
  892. theLocalIdentity         ds.l   1        ; offset: $3E (62)        ; <--  LocalIdentity 
  893. userName                 ds.l   1        ; offset: $42 (66)        ;  --> userName 
  894. password                 ds.l   1        ; offset: $46 (70)        ;  -->user password 
  895. sizeof                     EQU *            ; size:   $4A (74)
  896.                         ENDR
  897.  
  898. ; typedef struct AuthUnlockLocalIdentityPB  AuthUnlockLocalIdentityPB
  899. ;
  900. ;kAuthLockLocalIdentity:
  901. ;With this call existing LocalIdentity can be locked. If the ASDeleteLocalIdetity
  902. ;call fails with 'kOCEOperationDenied' error, name will contain the application which
  903. ;denied the operation. This name will be supplied by the application
  904. ;when it registered through kAuthAddToLocalIdentityQueue call
  905. ;
  906. AuthLockLocalIdentityPB RECORD    0
  907. qLink                     ds.l   1        ; offset: $0 (0)
  908. reserved1                 ds.l   1        ; offset: $4 (4)
  909. reserved2                 ds.l   1        ; offset: $8 (8)
  910. ioCompletion             ds.l   1        ; offset: $C (12)
  911. ioResult                 ds.w   1        ; offset: $10 (16)
  912. saveA5                     ds.l   1        ; offset: $12 (18)
  913. reqCode                     ds.w   1        ; offset: $16 (22)
  914. reserved                 ds.l   2        ; offset: $18 (24)
  915. serverHint                 ds     AddrBlock ; offset: $20 (32)
  916. dsRefNum                 ds.w   1        ; offset: $24 (36)
  917. callID                     ds.l   1        ; offset: $26 (38)
  918. identity                 ds.l   1        ; offset: $2A (42)
  919. gReserved1                 ds.l   1        ; offset: $2E (46)
  920. gReserved2                 ds.l   1        ; offset: $32 (50)
  921. gReserved3                 ds.l   1        ; offset: $36 (54)
  922. clientData                 ds.l   1        ; offset: $3A (58)
  923. theLocalIdentity         ds.l   1        ; offset: $3E (62)        ;  --> LocalIdentity 
  924. name                     ds.l   1        ; offset: $42 (66)        ; <--  name of the app which denied delete 
  925. sizeof                     EQU *            ; size:   $46 (70)
  926.                         ENDR
  927.  
  928. ; typedef struct AuthLockLocalIdentityPB  AuthLockLocalIdentityPB
  929. ; typedef NotificationUPP     NotificationProc
  930. ;
  931. ;kAuthAddToLocalIdentityQueue:
  932. ;An application requiring notification of locking/unlocking of the
  933. ;LocalIdentity can install itself using this call. The function provided
  934. ;in 'notifyProc' will be called whenever the requested event happens.
  935. ;When an AuthLockLocalIdentity call is made to the toolbox, the notificationProc
  936. ;will be called with 'kAuthLockPending'. The application may refuse the lock by returning
  937. ;a 'true' value. If all the registered entries return 'false' value, locking will be done
  938. ;successfully. Otherwise 'kOCEOperationDenied' error is returned to the caller. The appName
  939. ;(registered with the notificationProc) of the application which denied locking is also
  940. ;returned to the caller making the AuthLockIdentity call.
  941. ;
  942. AuthAddToLocalIdentityQueuePB RECORD    0
  943. qLink                     ds.l   1        ; offset: $0 (0)
  944. reserved1                 ds.l   1        ; offset: $4 (4)
  945. reserved2                 ds.l   1        ; offset: $8 (8)
  946. ioCompletion             ds.l   1        ; offset: $C (12)
  947. ioResult                 ds.w   1        ; offset: $10 (16)
  948. saveA5                     ds.l   1        ; offset: $12 (18)
  949. reqCode                     ds.w   1        ; offset: $16 (22)
  950. reserved                 ds.l   2        ; offset: $18 (24)
  951. serverHint                 ds     AddrBlock ; offset: $20 (32)
  952. dsRefNum                 ds.w   1        ; offset: $24 (36)
  953. callID                     ds.l   1        ; offset: $26 (38)
  954. identity                 ds.l   1        ; offset: $2A (42)
  955. gReserved1                 ds.l   1        ; offset: $2E (46)
  956. gReserved2                 ds.l   1        ; offset: $32 (50)
  957. gReserved3                 ds.l   1        ; offset: $36 (54)
  958. clientData                 ds.l   1        ; offset: $3A (58)
  959. notifyProc                 ds.l   1        ; offset: $3E (62)        ;  --> notification procedure 
  960. notifyFlags                 ds.l   1        ; offset: $42 (66)        ;  --> notifyFlags 
  961. appName                     ds.l   1        ; offset: $46 (70)        ;  --> name of application to be returned in Delete/Stop 
  962. sizeof                     EQU *            ; size:   $4A (74)
  963.                         ENDR
  964.  
  965. ; typedef struct AuthAddToLocalIdentityQueuePB  AuthAddToLocalIdentityQueuePB
  966. ;
  967. ;kAuthRemoveFromLocalIdentityQueue:
  968. AuthRemoveFromLocalIdentityQueuePB RECORD    0
  969. qLink                     ds.l   1        ; offset: $0 (0)
  970. reserved1                 ds.l   1        ; offset: $4 (4)
  971. reserved2                 ds.l   1        ; offset: $8 (8)
  972. ioCompletion             ds.l   1        ; offset: $C (12)
  973. ioResult                 ds.w   1        ; offset: $10 (16)
  974. saveA5                     ds.l   1        ; offset: $12 (18)
  975. reqCode                     ds.w   1        ; offset: $16 (22)
  976. reserved                 ds.l   2        ; offset: $18 (24)
  977. serverHint                 ds     AddrBlock ; offset: $20 (32)
  978. dsRefNum                 ds.w   1        ; offset: $24 (36)
  979. callID                     ds.l   1        ; offset: $26 (38)
  980. identity                 ds.l   1        ; offset: $2A (42)
  981. gReserved1                 ds.l   1        ; offset: $2E (46)
  982. gReserved2                 ds.l   1        ; offset: $32 (50)
  983. gReserved3                 ds.l   1        ; offset: $36 (54)
  984. clientData                 ds.l   1        ; offset: $3A (58)
  985. notifyProc                 ds.l   1        ; offset: $3E (62)        ;  --> notification procedure 
  986. sizeof                     EQU *            ; size:   $42 (66)
  987.                         ENDR
  988.  
  989. ; typedef struct AuthRemoveFromLocalIdentityQueuePB  AuthRemoveFromLocalIdentityQueuePB
  990. ;
  991. ;kAuthSetupLocalIdentity:
  992. ;The LocalIdentity can be Setup using this call.
  993. ;The userName and password correspond to the LocalIdentity setup.
  994. ;If a LocalIdentity Setup already exists 'kOCELocalIdentitySetupExists' error
  995. ;will be returned.
  996. ;
  997. AuthSetupLocalIdentityPB RECORD    0
  998. qLink                     ds.l   1        ; offset: $0 (0)
  999. reserved1                 ds.l   1        ; offset: $4 (4)
  1000. reserved2                 ds.l   1        ; offset: $8 (8)
  1001. ioCompletion             ds.l   1        ; offset: $C (12)
  1002. ioResult                 ds.w   1        ; offset: $10 (16)
  1003. saveA5                     ds.l   1        ; offset: $12 (18)
  1004. reqCode                     ds.w   1        ; offset: $16 (22)
  1005. reserved                 ds.l   2        ; offset: $18 (24)
  1006. serverHint                 ds     AddrBlock ; offset: $20 (32)
  1007. dsRefNum                 ds.w   1        ; offset: $24 (36)
  1008. callID                     ds.l   1        ; offset: $26 (38)
  1009. identity                 ds.l   1        ; offset: $2A (42)
  1010. gReserved1                 ds.l   1        ; offset: $2E (46)
  1011. gReserved2                 ds.l   1        ; offset: $32 (50)
  1012. gReserved3                 ds.l   1        ; offset: $36 (54)
  1013. clientData                 ds.l   1        ; offset: $3A (58)
  1014. aReserved                 ds.l   1        ; offset: $3E (62)        ;  --  
  1015. userName                 ds.l   1        ; offset: $42 (66)        ;  --> userName 
  1016. password                 ds.l   1        ; offset: $46 (70)        ;  -->user password 
  1017. sizeof                     EQU *            ; size:   $4A (74)
  1018.                         ENDR
  1019.  
  1020. ; typedef struct AuthSetupLocalIdentityPB  AuthSetupLocalIdentityPB
  1021. ;
  1022. ;kAuthChangeLocalIdentity:
  1023. ;An existing LocalIdentity  Setup can be changed using this call.
  1024. ;The userName and password correspond to the LocalIdentity setup.
  1025. ;If a LocalIdentity Setup does not exists 'kOCEOCESetupRequired' error
  1026. ;will be returned. The user can use  kAuthSetupLocalIdentity call to setit up.
  1027. ;If the 'password' does not correspond to the existing setup, 'kOCELocalAuthenticationFail'
  1028. ;OSErr will be returned. If successful, LocalID will have new name as 'userName' and
  1029. ;password as 'newPassword' and if any applications has installed into 
  1030. ;LocalIdentityQueue with kNotifyNameChangeMask set, it will be notified with 
  1031. ;kAuthLocalIdentityNameChangeOp action value. 
  1032. ;
  1033. ;
  1034. AuthChangeLocalIdentityPB RECORD    0
  1035. qLink                     ds.l   1        ; offset: $0 (0)
  1036. reserved1                 ds.l   1        ; offset: $4 (4)
  1037. reserved2                 ds.l   1        ; offset: $8 (8)
  1038. ioCompletion             ds.l   1        ; offset: $C (12)
  1039. ioResult                 ds.w   1        ; offset: $10 (16)
  1040. saveA5                     ds.l   1        ; offset: $12 (18)
  1041. reqCode                     ds.w   1        ; offset: $16 (22)
  1042. reserved                 ds.l   2        ; offset: $18 (24)
  1043. serverHint                 ds     AddrBlock ; offset: $20 (32)
  1044. dsRefNum                 ds.w   1        ; offset: $24 (36)
  1045. callID                     ds.l   1        ; offset: $26 (38)
  1046. identity                 ds.l   1        ; offset: $2A (42)
  1047. gReserved1                 ds.l   1        ; offset: $2E (46)
  1048. gReserved2                 ds.l   1        ; offset: $32 (50)
  1049. gReserved3                 ds.l   1        ; offset: $36 (54)
  1050. clientData                 ds.l   1        ; offset: $3A (58)
  1051. aReserved                 ds.l   1        ; offset: $3E (62)        ;  --  
  1052. userName                 ds.l   1        ; offset: $42 (66)        ;  --> userName 
  1053. password                 ds.l   1        ; offset: $46 (70)        ;  --> current password 
  1054. newPassword                 ds.l   1        ; offset: $4A (74)        ;  --> new password 
  1055. sizeof                     EQU *            ; size:   $4E (78)
  1056.                         ENDR
  1057.  
  1058. ; typedef struct AuthChangeLocalIdentityPB  AuthChangeLocalIdentityPB
  1059. ;
  1060. ;kAuthRemoveLocalIdentity:
  1061. ;An existing LocalIdentity  Setup can be removed using this call.
  1062. ;The userName and password correspond to the LocalIdentity setup.
  1063. ;If a LocalIdentity Setup does not exists 'kOCEOCESetupRequired' error
  1064. ;will be returned.
  1065. ;If the 'password' does not correspond to the existing setup, 'kOCELocalAuthenticationFail'
  1066. ;OSErr will be returned. If successful, LocalIdentity will be removed from the OCE Setup.
  1067. ;This is a very distructive operation, user must be warned enough before actually making
  1068. ;this call.
  1069. ;
  1070. AuthRemoveLocalIdentityPB RECORD    0
  1071. qLink                     ds.l   1        ; offset: $0 (0)
  1072. reserved1                 ds.l   1        ; offset: $4 (4)
  1073. reserved2                 ds.l   1        ; offset: $8 (8)
  1074. ioCompletion             ds.l   1        ; offset: $C (12)
  1075. ioResult                 ds.w   1        ; offset: $10 (16)
  1076. saveA5                     ds.l   1        ; offset: $12 (18)
  1077. reqCode                     ds.w   1        ; offset: $16 (22)
  1078. reserved                 ds.l   2        ; offset: $18 (24)
  1079. serverHint                 ds     AddrBlock ; offset: $20 (32)
  1080. dsRefNum                 ds.w   1        ; offset: $24 (36)
  1081. callID                     ds.l   1        ; offset: $26 (38)
  1082. identity                 ds.l   1        ; offset: $2A (42)
  1083. gReserved1                 ds.l   1        ; offset: $2E (46)
  1084. gReserved2                 ds.l   1        ; offset: $32 (50)
  1085. gReserved3                 ds.l   1        ; offset: $36 (54)
  1086. clientData                 ds.l   1        ; offset: $3A (58)
  1087. aReserved                 ds.l   1        ; offset: $3E (62)        ;  --  
  1088. userName                 ds.l   1        ; offset: $42 (66)        ;  --> userName 
  1089. password                 ds.l   1        ; offset: $46 (70)        ;  --> current password 
  1090. sizeof                     EQU *            ; size:   $4A (74)
  1091.                         ENDR
  1092.  
  1093. ; typedef struct AuthRemoveLocalIdentityPB  AuthRemoveLocalIdentityPB
  1094. ;
  1095. ;kOCESetupAddDirectoryInfo:
  1096. ;Using this call identity for a catalog can be setup under LocalIdentity umbrella.
  1097. ;ASCreateLocalIdentity should have been done succesfully before making this call.
  1098. ;directoryRecordCID -> is the record creationID obtained when DirAddOCEDirectory or
  1099. ;DirAddDSAMDirectory call was made.
  1100. ;rid-> is the recordID in which the identity for the catalog will be established.
  1101. ;password-> the password associated with the rid in the catalog world.
  1102. ;
  1103. OCESetupAddDirectoryInfoPB RECORD    0
  1104. qLink                     ds.l   1        ; offset: $0 (0)
  1105. reserved1                 ds.l   1        ; offset: $4 (4)
  1106. reserved2                 ds.l   1        ; offset: $8 (8)
  1107. ioCompletion             ds.l   1        ; offset: $C (12)
  1108. ioResult                 ds.w   1        ; offset: $10 (16)
  1109. saveA5                     ds.l   1        ; offset: $12 (18)
  1110. reqCode                     ds.w   1        ; offset: $16 (22)
  1111. reserved                 ds.l   2        ; offset: $18 (24)
  1112. serverHint                 ds     AddrBlock ; offset: $20 (32)
  1113. dsRefNum                 ds.w   1        ; offset: $24 (36)
  1114. callID                     ds.l   1        ; offset: $26 (38)
  1115. identity                 ds.l   1        ; offset: $2A (42)
  1116. gReserved1                 ds.l   1        ; offset: $2E (46)
  1117. gReserved2                 ds.l   1        ; offset: $32 (50)
  1118. gReserved3                 ds.l   1        ; offset: $36 (54)
  1119. clientData                 ds.l   1        ; offset: $3A (58)
  1120. directoryRecordCID         ds.l   2        ; offset: $3E (62)        ;  --> CreationID for the catalog 
  1121. recordID                 ds.l   1        ; offset: $46 (70)        ;  --> recordID for the identity 
  1122. password                 ds.l   1        ; offset: $4A (74)        ;  --> password in the catalog world 
  1123. sizeof                     EQU *            ; size:   $4E (78)
  1124.                         ENDR
  1125.  
  1126. ; typedef struct OCESetupAddDirectoryInfoPB  OCESetupAddDirectoryInfoPB
  1127. ;
  1128. ;kOCESetupChangeDirectoryInfo:
  1129. ;Using this call an existing identity for a catalog under LocalIdentity umbrella
  1130. ;can be changed.
  1131. ;ASCreateLocalIdentity should have been done succesfully before making this call.
  1132. ;directoryRecordCID -> is the record creationID obtained when DirAddOCEDirectory or
  1133. ;DirAddDSAMDirectory call was made.
  1134. ;rid-> is the recordID in which the identity for the catalog will be established.
  1135. ;password-> the password associated with the rid in the catalog world.
  1136. ;newPassword -> the new password for the catalog
  1137. ;
  1138. OCESetupChangeDirectoryInfoPB RECORD    0
  1139. qLink                     ds.l   1        ; offset: $0 (0)
  1140. reserved1                 ds.l   1        ; offset: $4 (4)
  1141. reserved2                 ds.l   1        ; offset: $8 (8)
  1142. ioCompletion             ds.l   1        ; offset: $C (12)
  1143. ioResult                 ds.w   1        ; offset: $10 (16)
  1144. saveA5                     ds.l   1        ; offset: $12 (18)
  1145. reqCode                     ds.w   1        ; offset: $16 (22)
  1146. reserved                 ds.l   2        ; offset: $18 (24)
  1147. serverHint                 ds     AddrBlock ; offset: $20 (32)
  1148. dsRefNum                 ds.w   1        ; offset: $24 (36)
  1149. callID                     ds.l   1        ; offset: $26 (38)
  1150. identity                 ds.l   1        ; offset: $2A (42)
  1151. gReserved1                 ds.l   1        ; offset: $2E (46)
  1152. gReserved2                 ds.l   1        ; offset: $32 (50)
  1153. gReserved3                 ds.l   1        ; offset: $36 (54)
  1154. clientData                 ds.l   1        ; offset: $3A (58)
  1155. directoryRecordCID         ds.l   2        ; offset: $3E (62)        ;  --> CreationID for the catalog 
  1156. recordID                 ds.l   1        ; offset: $46 (70)        ;  --> recordID for the identity 
  1157. password                 ds.l   1        ; offset: $4A (74)        ;  --> password in the catalog world 
  1158. newPassword                 ds.l   1        ; offset: $4E (78)        ;  --> new password in the catalog 
  1159. sizeof                     EQU *            ; size:   $52 (82)
  1160.                         ENDR
  1161.  
  1162. ; typedef struct OCESetupChangeDirectoryInfoPB  OCESetupChangeDirectoryInfoPB
  1163. ;
  1164. ;kOCESetupRemoveDirectoryInfo:
  1165. ;Using this call an existing identity for a catalog under LocalIdentity umbrella
  1166. ;can be changed.
  1167. ;ASCreateLocalIdentity should have been done succesfully before making this call.
  1168. ;directoryRecordCID -> is the record creationID obtained when DirAddOCEDirectory or
  1169. ;
  1170. OCESetupRemoveDirectoryInfoPB RECORD    0
  1171. qLink                     ds.l   1        ; offset: $0 (0)
  1172. reserved1                 ds.l   1        ; offset: $4 (4)
  1173. reserved2                 ds.l   1        ; offset: $8 (8)
  1174. ioCompletion             ds.l   1        ; offset: $C (12)
  1175. ioResult                 ds.w   1        ; offset: $10 (16)
  1176. saveA5                     ds.l   1        ; offset: $12 (18)
  1177. reqCode                     ds.w   1        ; offset: $16 (22)
  1178. reserved                 ds.l   2        ; offset: $18 (24)
  1179. serverHint                 ds     AddrBlock ; offset: $20 (32)
  1180. dsRefNum                 ds.w   1        ; offset: $24 (36)
  1181. callID                     ds.l   1        ; offset: $26 (38)
  1182. identity                 ds.l   1        ; offset: $2A (42)
  1183. gReserved1                 ds.l   1        ; offset: $2E (46)
  1184. gReserved2                 ds.l   1        ; offset: $32 (50)
  1185. gReserved3                 ds.l   1        ; offset: $36 (54)
  1186. clientData                 ds.l   1        ; offset: $3A (58)
  1187. directoryRecordCID         ds.l   2        ; offset: $3E (62)        ;  --> CreationID for the catalog 
  1188. sizeof                     EQU *            ; size:   $46 (70)
  1189.                         ENDR
  1190.  
  1191. ; typedef struct OCESetupRemoveDirectoryInfoPB  OCESetupRemoveDirectoryInfoPB
  1192. ;
  1193. ;kOCESetupGetDirectoryInfo:
  1194. ;Using this call info on an existing identity for a particular catalog under LocalIdentity umbrella
  1195. ;can be obtained.
  1196. ;For the specified catalog 'directoryName' and 'discriminator', rid and nativeName will
  1197. ;returned. Caller must provide appropriate buffer to get back rid and nativeName.
  1198. ;'password' will be returned  for  non-ADAP Catalogs.
  1199. ;
  1200. OCESetupGetDirectoryInfoPB RECORD    0
  1201. qLink                     ds.l   1        ; offset: $0 (0)
  1202. reserved1                 ds.l   1        ; offset: $4 (4)
  1203. reserved2                 ds.l   1        ; offset: $8 (8)
  1204. ioCompletion             ds.l   1        ; offset: $C (12)
  1205. ioResult                 ds.w   1        ; offset: $10 (16)
  1206. saveA5                     ds.l   1        ; offset: $12 (18)
  1207. reqCode                     ds.w   1        ; offset: $16 (22)
  1208. reserved                 ds.l   2        ; offset: $18 (24)
  1209. serverHint                 ds     AddrBlock ; offset: $20 (32)
  1210. dsRefNum                 ds.w   1        ; offset: $24 (36)
  1211. callID                     ds.l   1        ; offset: $26 (38)
  1212. identity                 ds.l   1        ; offset: $2A (42)
  1213. gReserved1                 ds.l   1        ; offset: $2E (46)
  1214. gReserved2                 ds.l   1        ; offset: $32 (50)
  1215. gReserved3                 ds.l   1        ; offset: $36 (54)
  1216. clientData                 ds.l   1        ; offset: $3A (58)
  1217. directoryName             ds.l   1        ; offset: $3E (62)        ;  --> catalog name 
  1218. discriminator             ds.l   2        ; offset: $42 (66)        ;  --> discriminator for the catalog 
  1219. recordID                 ds.l   1        ; offset: $4A (74)        ; <--  rid for the catalog identity 
  1220. nativeName                 ds.l   1        ; offset: $4E (78)        ; <--  user name in the catalog world 
  1221. password                 ds.l   1        ; offset: $52 (82)        ; <--  password in the catalog world 
  1222. sizeof                     EQU *            ; size:   $56 (86)
  1223.                         ENDR
  1224.  
  1225. ; typedef struct OCESetupGetDirectoryInfoPB  OCESetupGetDirectoryInfoPB
  1226. ;****************************************************************************
  1227. ;
  1228. ;
  1229. ;         Catalog Manager operations
  1230. ;
  1231. ;
  1232. ;****************************************************************************
  1233. ; typedef union DirParamBlock  DirParamBlock
  1234. ; typedef DirParamBlock     *DirParamBlockPtr
  1235. DirAddRecordPB             RECORD    0
  1236. qLink                     ds.l   1        ; offset: $0 (0)
  1237. reserved1                 ds.l   1        ; offset: $4 (4)
  1238. reserved2                 ds.l   1        ; offset: $8 (8)
  1239. ioCompletion             ds.l   1        ; offset: $C (12)
  1240. ioResult                 ds.w   1        ; offset: $10 (16)
  1241. saveA5                     ds.l   1        ; offset: $12 (18)
  1242. reqCode                     ds.w   1        ; offset: $16 (22)
  1243. reserved                 ds.l   2        ; offset: $18 (24)
  1244. serverHint                 ds     AddrBlock ; offset: $20 (32)
  1245. dsRefNum                 ds.w   1        ; offset: $24 (36)
  1246. callID                     ds.l   1        ; offset: $26 (38)
  1247. identity                 ds.l   1        ; offset: $2A (42)
  1248. gReserved1                 ds.l   1        ; offset: $2E (46)
  1249. gReserved2                 ds.l   1        ; offset: $32 (50)
  1250. gReserved3                 ds.l   1        ; offset: $36 (54)
  1251. clientData                 ds.l   1        ; offset: $3A (58)
  1252. aRecord                     ds.l   1        ; offset: $3E (62)        ;  --> CreationID returned here 
  1253. allowDuplicate             ds.b   1        ; offset: $42 (66)        ;  --> 
  1254. filler1                     ds.b   1        ; offset: $43 (67)
  1255. sizeof                     EQU *            ; size:   $44 (68)
  1256.                         ENDR
  1257.  
  1258. ; typedef struct DirAddRecordPB  DirAddRecordPB
  1259. ; DeleteRecord 
  1260. DirDeleteRecordPB         RECORD    0
  1261. qLink                     ds.l   1        ; offset: $0 (0)
  1262. reserved1                 ds.l   1        ; offset: $4 (4)
  1263. reserved2                 ds.l   1        ; offset: $8 (8)
  1264. ioCompletion             ds.l   1        ; offset: $C (12)
  1265. ioResult                 ds.w   1        ; offset: $10 (16)
  1266. saveA5                     ds.l   1        ; offset: $12 (18)
  1267. reqCode                     ds.w   1        ; offset: $16 (22)
  1268. reserved                 ds.l   2        ; offset: $18 (24)
  1269. serverHint                 ds     AddrBlock ; offset: $20 (32)
  1270. dsRefNum                 ds.w   1        ; offset: $24 (36)
  1271. callID                     ds.l   1        ; offset: $26 (38)
  1272. identity                 ds.l   1        ; offset: $2A (42)
  1273. gReserved1                 ds.l   1        ; offset: $2E (46)
  1274. gReserved2                 ds.l   1        ; offset: $32 (50)
  1275. gReserved3                 ds.l   1        ; offset: $36 (54)
  1276. clientData                 ds.l   1        ; offset: $3A (58)
  1277. aRecord                     ds.l   1        ; offset: $3E (62)        ;  --> 
  1278. sizeof                     EQU *            ; size:   $42 (66)
  1279.                         ENDR
  1280.  
  1281. ; typedef struct DirDeleteRecordPB  DirDeleteRecordPB
  1282. ; aRecord must contain valid PackedRLI and a CreationID. 
  1283. ;********************************************************************************
  1284. ;
  1285. ;DirEnumerate:
  1286. ;This call can be used to enumerate both DNodes and records under a specified
  1287. ;DNode. A DNode is specified by the PackedRLIPtr 'aRLI'.
  1288. ;
  1289. ;startingPoint indicates where to start the enumeration.  Initially,
  1290. ;it should be set to a value of nil.  After some records are enumerated,
  1291. ;the client can issue the call again with the same aRLI and recordName and
  1292. ;typeList. The last received DirEnumSpec in the startingPoint field.  The server
  1293. ;will continue the enumeration from that record on. if user wants to get back the
  1294. ;value specified in the startingRecord also, the Boolean 'includeStartingPoint'
  1295. ;must be set to 'true'. If this is set to 'false', records specified after the
  1296. ;startingPoint record will be returned.
  1297. ;
  1298. ;sortBy indicates to the server to return the records that match in name-first
  1299. ;or type-first order.  sortDirection indicates to the server to search in forward
  1300. ;or backward sort order for RecordIDs Specified.
  1301. ;
  1302. ;RecordIDS and Enumeration Criteria:
  1303. ;
  1304. ;PackedRLIPtr parameter 'aRLI' will be accepted for DNode
  1305. ;specification.
  1306. ;
  1307. ;One RStringPtr 'nameMatchString' is provided. User is allowed to
  1308. ;specify a wild card in the name. WildCard specification is specified in 
  1309. ;matchNameHow parameter and possible values are defined in DirMatchWith Enum.
  1310. ;
  1311. ;'typeCount' parameter indicate how many types are in the 'typeList'.
  1312. ;
  1313. ;'typeList' parmeter is a pointer to an RString array of size 'typeCount'.
  1314. ;
  1315. ;If 'typeCount' is exactly equal to one, a wild card can be specified
  1316. ;for the entity type; otherwise types have to be completely specified.
  1317. ;WildCard specification is specified in  matchNameHow parameter
  1318. ; and possible values are defined in DirMatchWith Enum.
  1319. ;
  1320. ;
  1321. ;A nil value for 'startingPoint' is allowed when sortDirection specified
  1322. ;is 'kSortBackwards'. This was not allowed previously.
  1323. ;
  1324. ;'enumFlags' parameter is a bit field. The following bits can be set:
  1325. ;    kEnumDistinguishedNameMask to get back records in the cluster data base.
  1326. ;    kEnumAliasMask to get back record aliases
  1327. ;    kEnumPseudonymMask to get back record pseudonyms
  1328. ;    kEnumDNodeMask to get back any children dNodes for the DNode specified in the
  1329. ;    'aRLI' parameter.
  1330. ;    kEnumForeignDNodeMask to get back any children dNodes which have ForeignDnodes in the
  1331. ;    dNode specified in the 'aRLI' parameter.
  1332. ;
  1333. ;    kEnumAll is combination of all five values and can be used to enumerate
  1334. ;    everything under a specified DNode.
  1335. ;
  1336. ;
  1337. ;
  1338. ;The results returned for each element will consist of a DirEnumSpec.
  1339. ;The DirEnumSpec contains 'enumFlag' which indicates the type of entity and a
  1340. ;union which will have either DNodeID or LocalRecordID depending on the value of 'enumFlag'.
  1341. ;The 'enumFlag'  will indicate whether the returned element is a
  1342. ;record(kEnumDistinguishedNameMask bit) or a alias(kEnumAliasMask bit) or a
  1343. ;Pseudonym(kEnumPseudonymMask) or a child DNode(kEnumDNodeMask bit).  If the 'enumFlag' value
  1344. ;is kEnumDnodeMask, it indicates the value returned in the union is a DNodeID (i.e. 'dNodeNumber'
  1345. ;is the 'dNodeNumber' of the child dnode(if the catalog supports dNodeNumbers, otherwise
  1346. ;this will be set to zero). The name will be the child dnode name. For other values of the
  1347. ;'enumFlag', the value in the union will be LocalRecordID. In addition to kEnumDnodeMask it is
  1348. ;possible that kEnumForeignDNodeMask is also set. This is an advisory bit and application must make
  1349. ;it's own decision before displaying these records. If catalog supports kSupportIndexRatioMask, it
  1350. ;may also return the relative position of the record (percentile of total records) in the 
  1351. ;indexRatio field in EnumSpec.
  1352. ;
  1353. ;
  1354. ;responseSLRV will contain the script, language, region and version of the oce sorting software.
  1355. ;The results will be collected in the 'getBuffer' supplied by the user.
  1356. ;If buffer can not hold all the data returned 'kOCEMoreData' error will be returned.
  1357. ;
  1358. ;If user receives 'noErr' or 'kOCEMoreData', buffer will contain valid results. A user
  1359. ;can extract the results in the 'getBuffer' by making DirEnumerateParse' call.
  1360. ;
  1361. DirEnumerateGetPB         RECORD    0
  1362. qLink                     ds.l   1        ; offset: $0 (0)
  1363. reserved1                 ds.l   1        ; offset: $4 (4)
  1364. reserved2                 ds.l   1        ; offset: $8 (8)
  1365. ioCompletion             ds.l   1        ; offset: $C (12)
  1366. ioResult                 ds.w   1        ; offset: $10 (16)
  1367. saveA5                     ds.l   1        ; offset: $12 (18)
  1368. reqCode                     ds.w   1        ; offset: $16 (22)
  1369. reserved                 ds.l   2        ; offset: $18 (24)
  1370. serverHint                 ds     AddrBlock ; offset: $20 (32)
  1371. dsRefNum                 ds.w   1        ; offset: $24 (36)
  1372. callID                     ds.l   1        ; offset: $26 (38)
  1373. identity                 ds.l   1        ; offset: $2A (42)
  1374. gReserved1                 ds.l   1        ; offset: $2E (46)
  1375. gReserved2                 ds.l   1        ; offset: $32 (50)
  1376. gReserved3                 ds.l   1        ; offset: $36 (54)
  1377. clientData                 ds.l   1        ; offset: $3A (58)
  1378. aRLI                     ds.l   1        ; offset: $3E (62)        ;  --> an RLI specifying the cluster to be enumerated 
  1379. startingPoint             ds.l   1        ; offset: $42 (66)        ;  --> 
  1380. sortBy                     ds.w   1        ; offset: $46 (70)        ;  --> 
  1381. sortDirection             ds.w   1        ; offset: $48 (72)        ;  --> 
  1382. dReserved                 ds.l   1        ; offset: $4A (74)        ;  --  
  1383. nameMatchString             ds.l   1        ; offset: $4E (78)        ;  --> name from which enumeration should start 
  1384. typesList                 ds.l   1        ; offset: $52 (82)        ;  --> list of entity types to be enumerated 
  1385. typeCount                 ds.l   1        ; offset: $56 (86)        ;  --> number of types in the list 
  1386. enumFlags                 ds.l   1        ; offset: $5A (90)        ;  --> indicates what to enumerate 
  1387. includeStartingPoint     ds.b   1        ; offset: $5E (94)        ;  --> if true return the record specified in starting point 
  1388. padByte                     ds.b   1        ; offset: $5F (95)
  1389. matchNameHow             ds.b   1        ; offset: $60 (96)        ;  --> Matching Criteria for nameMatchString 
  1390. matchTypeHow             ds.b   1        ; offset: $61 (97)        ;  --> Matching Criteria for typeList 
  1391. getBuffer                 ds.l   1        ; offset: $62 (98)        ;  --> 
  1392. getBufferSize             ds.l   1        ; offset: $66 (102)        ;  --> 
  1393. responseSLRV             ds     SLRV    ; offset: $6A (106)        ;  <--  response SLRV 
  1394. sizeof                     EQU *            ; size:   $72 (114)
  1395.                         ENDR
  1396.  
  1397. ; typedef struct DirEnumerateGetPB  DirEnumerateGetPB
  1398. ; The EnumerateRecords call-back function is defined as follows: 
  1399. ; typedef ForEachDirEnumSpecUPP  ForEachDirEnumSpec
  1400. ;
  1401. ;EnumerateParse:
  1402. ;After an EnumerateGet call has completed, call EnumerateParse
  1403. ;to parse through the buffer that was filled in EnumerateGet.
  1404. ;
  1405. ;'eachEnumSpec' will be called each time to return to the client a
  1406. ;DirEnumSpec that matches the pattern for enumeration. 'enumFlag' indicates the type
  1407. ;of information returned in the DirEnumSpec
  1408. ;The clientData parameter that you pass in the parameter block will be passed
  1409. ;to 'forEachEnumDSSpecFunc'.  You are free to put anything in clientData - it is intended
  1410. ;to allow you some way to match the call-back to the original call (for
  1411. ;example, you make more then one aysynchronous EnumerateGet calls and you want to
  1412. ;associate returned results in some way).
  1413. ;
  1414. ;The client should return FALSE from 'eachEnumSpec' to continue
  1415. ;processing of the EnumerateParse request.  Returning TRUE will
  1416. ;terminate the EnumerateParse request.
  1417. ;
  1418. ;For synchronous calls, the call-back routine actually runs as part of the same thread
  1419. ;of execution as the thread that made the EnumerateParse call.  That means that the
  1420. ;same low-memory globals, A5, stack, etc. are in effect during the call-back
  1421. ;that were in effect when the call was made.  Because of this, the call-back
  1422. ;routine has the same restrictions as the caller of EnumerateParse:
  1423. ;if EnumerateParse was not called from interrupt level, then the call-
  1424. ;back routine can allocate memory. For asynchronous calls, call-back routine is
  1425. ;like a ioCompletion except that A5 will be preserved for the application.
  1426. ;
  1427. DirEnumerateParsePB     RECORD    0
  1428. qLink                     ds.l   1        ; offset: $0 (0)
  1429. reserved1                 ds.l   1        ; offset: $4 (4)
  1430. reserved2                 ds.l   1        ; offset: $8 (8)
  1431. ioCompletion             ds.l   1        ; offset: $C (12)
  1432. ioResult                 ds.w   1        ; offset: $10 (16)
  1433. saveA5                     ds.l   1        ; offset: $12 (18)
  1434. reqCode                     ds.w   1        ; offset: $16 (22)
  1435. reserved                 ds.l   2        ; offset: $18 (24)
  1436. serverHint                 ds     AddrBlock ; offset: $20 (32)
  1437. dsRefNum                 ds.w   1        ; offset: $24 (36)
  1438. callID                     ds.l   1        ; offset: $26 (38)
  1439. identity                 ds.l   1        ; offset: $2A (42)
  1440. gReserved1                 ds.l   1        ; offset: $2E (46)
  1441. gReserved2                 ds.l   1        ; offset: $32 (50)
  1442. gReserved3                 ds.l   1        ; offset: $36 (54)
  1443. clientData                 ds.l   1        ; offset: $3A (58)
  1444. aRLI                     ds.l   1        ; offset: $3E (62)        ;  --> an RLI specifying the cluster to be enumerated 
  1445. bReserved                 ds.l   1        ; offset: $42 (66)        ;  --  
  1446. cReserved                 ds.l   1        ; offset: $46 (70)        ;  --  
  1447. eachEnumSpec             ds.l   1        ; offset: $4A (74)        ;  --> 
  1448. eReserved                 ds.l   1        ; offset: $4E (78)        ;  --  
  1449. fReserved                 ds.l   1        ; offset: $52 (82)        ;  --  
  1450. gReserved                 ds.l   1        ; offset: $56 (86)        ;  --  
  1451. hReserved                 ds.l   1        ; offset: $5A (90)        ;  --  
  1452. iReserved                 ds.l   1        ; offset: $5E (94)        ;  --  
  1453. getBuffer                 ds.l   1        ; offset: $62 (98)        ;  --> 
  1454. getBufferSize             ds.l   1        ; offset: $66 (102)        ;  --> 
  1455. l1Reserved                 ds.w   1        ; offset: $6A (106)        ;  -- 
  1456. l2Reserved                 ds.w   1        ; offset: $6C (108)        ;  --  
  1457. l3Reserved                 ds.w   1        ; offset: $6E (110)        ;  -- 
  1458. l4Reserved                 ds.w   1        ; offset: $70 (112)        ;  --  
  1459. sizeof                     EQU *            ; size:   $72 (114)
  1460.                         ENDR
  1461.  
  1462. ; typedef struct DirEnumerateParsePB  DirEnumerateParsePB
  1463. ;
  1464. ; * FindRecordGet operates similarly to DirEnumerate except it returns a list
  1465. ; * of records instead of records local to a cluster.
  1466. ;
  1467. DirFindRecordGetPB         RECORD    0
  1468. qLink                     ds.l   1        ; offset: $0 (0)
  1469. reserved1                 ds.l   1        ; offset: $4 (4)
  1470. reserved2                 ds.l   1        ; offset: $8 (8)
  1471. ioCompletion             ds.l   1        ; offset: $C (12)
  1472. ioResult                 ds.w   1        ; offset: $10 (16)
  1473. saveA5                     ds.l   1        ; offset: $12 (18)
  1474. reqCode                     ds.w   1        ; offset: $16 (22)
  1475. reserved                 ds.l   2        ; offset: $18 (24)
  1476. serverHint                 ds     AddrBlock ; offset: $20 (32)
  1477. dsRefNum                 ds.w   1        ; offset: $24 (36)
  1478. callID                     ds.l   1        ; offset: $26 (38)
  1479. identity                 ds.l   1        ; offset: $2A (42)
  1480. gReserved1                 ds.l   1        ; offset: $2E (46)
  1481. gReserved2                 ds.l   1        ; offset: $32 (50)
  1482. gReserved3                 ds.l   1        ; offset: $36 (54)
  1483. clientData                 ds.l   1        ; offset: $3A (58)
  1484. startingPoint             ds.l   1        ; offset: $3E (62)
  1485. reservedA                 ds.l   2        ; offset: $42 (66)
  1486. nameMatchString             ds.l   1        ; offset: $4A (74)
  1487. typesList                 ds.l   1        ; offset: $4E (78)
  1488. typeCount                 ds.l   1        ; offset: $52 (82)
  1489. reservedB                 ds.l   1        ; offset: $56 (86)
  1490. reservedC                 ds.w   1        ; offset: $5A (90)
  1491. matchNameHow             ds.b   1        ; offset: $5C (92)
  1492. matchTypeHow             ds.b   1        ; offset: $5D (93)
  1493. getBuffer                 ds.l   1        ; offset: $5E (94)
  1494. getBufferSize             ds.l   1        ; offset: $62 (98)
  1495. directoryName             ds.l   1        ; offset: $66 (102)
  1496. discriminator             ds.l   2        ; offset: $6A (106)
  1497. sizeof                     EQU *            ; size:   $72 (114)
  1498.                         ENDR
  1499.  
  1500. ; typedef struct DirFindRecordGetPB  DirFindRecordGetPB
  1501. ; The FindRecordParse call-back function is defined as follows: 
  1502. ; typedef ForEachRecordUPP     ForEachRecord
  1503. ;
  1504. ; * This PB same as DirFindRecordGet except it includes the callback function
  1505. ;
  1506. DirFindRecordParsePB     RECORD    0
  1507. qLink                     ds.l   1        ; offset: $0 (0)
  1508. reserved1                 ds.l   1        ; offset: $4 (4)
  1509. reserved2                 ds.l   1        ; offset: $8 (8)
  1510. ioCompletion             ds.l   1        ; offset: $C (12)
  1511. ioResult                 ds.w   1        ; offset: $10 (16)
  1512. saveA5                     ds.l   1        ; offset: $12 (18)
  1513. reqCode                     ds.w   1        ; offset: $16 (22)
  1514. reserved                 ds.l   2        ; offset: $18 (24)
  1515. serverHint                 ds     AddrBlock ; offset: $20 (32)
  1516. dsRefNum                 ds.w   1        ; offset: $24 (36)
  1517. callID                     ds.l   1        ; offset: $26 (38)
  1518. identity                 ds.l   1        ; offset: $2A (42)
  1519. gReserved1                 ds.l   1        ; offset: $2E (46)
  1520. gReserved2                 ds.l   1        ; offset: $32 (50)
  1521. gReserved3                 ds.l   1        ; offset: $36 (54)
  1522. clientData                 ds.l   1        ; offset: $3A (58)
  1523. startingPoint             ds.l   1        ; offset: $3E (62)
  1524. reservedA                 ds.l   2        ; offset: $42 (66)
  1525. nameMatchString             ds.l   1        ; offset: $4A (74)
  1526. typesList                 ds.l   1        ; offset: $4E (78)
  1527. typeCount                 ds.l   1        ; offset: $52 (82)
  1528. reservedB                 ds.l   1        ; offset: $56 (86)
  1529. reservedC                 ds.w   1        ; offset: $5A (90)
  1530. matchNameHow             ds.b   1        ; offset: $5C (92)
  1531. matchTypeHow             ds.b   1        ; offset: $5D (93)
  1532. getBuffer                 ds.l   1        ; offset: $5E (94)
  1533. getBufferSize             ds.l   1        ; offset: $62 (98)
  1534. directoryName             ds.l   1        ; offset: $66 (102)
  1535. discriminator             ds.l   2        ; offset: $6A (106)
  1536. forEachRecordFunc         ds.l   1        ; offset: $72 (114)
  1537. sizeof                     EQU *            ; size:   $76 (118)
  1538.                         ENDR
  1539.  
  1540. ; typedef struct DirFindRecordParsePB  DirFindRecordParsePB
  1541. ;
  1542. ;LookupGet:
  1543. ;
  1544. ;aRecordList is an array of pointers to RecordIDs, each of which must
  1545. ;contain valid PackedRLI and a CreationID.  recordIDCount is
  1546. ;the size of this array.
  1547. ;
  1548. ;attrTypeList is an array of pointers to AttributeTypes.  attrTypeCount is
  1549. ;the size of this array.
  1550. ;
  1551. ;staringRecordIndex is the record from which to continue the lookup.
  1552. ;If you want to start from first record in the list, this must be 1 (not zero).
  1553. ;This value must always be <= recordIDCount.
  1554. ;
  1555. ;startingAttributeIndex is the AttributeType from which we want to continue the lookup.
  1556. ;If you want to start from first attribute in the list, this must be 1 (not zero).
  1557. ;This value must always be <= attrTypeCount.
  1558. ;
  1559. ;startingAttribute is the value of the attribute value from which we want to
  1560. ;continue lookup. In case of catalogs supporting creationIDs, startingAttribute
  1561. ;may contain only a CID. Other catalogs may require the entire value.
  1562. ;If a non-null cid is given and if an attribute value with that cid is not found, this
  1563. ;call will terminate with kOCENoSuchAttribute error. A client should not make a LookupParse call
  1564. ;after getting this error.
  1565. ;
  1566. ;'includeStartingPoint' boolean can be set to 'true' to receive the value specified in the
  1567. ;startingPoint in the results returned. If this is set to 'false', the value
  1568. ;specified in the startingAttribute will not be returned.
  1569. ;
  1570. ;When LookupGet call fails with kOCEMoreData, the client will be able to find out where the call ended
  1571. ;with a subsequent LookupParse call. When the LookupParse call completes with kOCEMoreData,
  1572. ;lastRecordIndex, lastAttributeIndex and lastValueCID will point to the corresponding
  1573. ;recordID, attributeType and the CreationID of the last value returned successfully. These parameters
  1574. ;are exactly the same ones for the startingRecordIndex, startingAttributeIndex, and startingAttrValueCID
  1575. ;so they can be used in a subsequent LookupGet call to continue the lookup.
  1576. ;
  1577. ;In an extreme case, It is possible that we had an attribute value that is too large to fit
  1578. ;in the client's buffer. In such cases, if it was the only thing that we tried to fit
  1579. ;into the buffer, the client will not able to proceed further because he will not know the
  1580. ;attributeCID of the attribute to continue with.  Also he does not know how big a buffer
  1581. ;would be needed for the next call to get this 'mondo' attribute value successfully.
  1582. ;
  1583. ;to support this, LookupParse call will do the following:
  1584. ;
  1585. ;If LookupGet has failed with kOCEMoreData error, LookupParse will check to make sure that
  1586. ;ForEachAttributeValueFunc has been called at least once. If so, the client has the option
  1587. ;to continue from that attribute CreationID (for PAB/ADAP) in the next LookupGet call.
  1588. ;However, if it was not even called once, then the attribute value may be too big to fit in the
  1589. ;user's buffer. In this case, lastAttrValueCID (lastAttribute) and attrSize are returned in the
  1590. ;parse buffer and the call will fail with kOCEMoreAttrValue. However, it is possible that
  1591. ;ForEachAttributeValue was not called because the user does not have read access to some of
  1592. ;the attributeTypes in the list, and the buffer was full before even reading the creationID of
  1593. ;any of the attribute values.  A kOCEMoreData error is returned.
  1594. ;
  1595. ;The Toolbox will check for duplicate RecordIDs in the aRecordList. If found, it will return
  1596. ;'daDuplicateRecordIDErr'.
  1597. ;
  1598. ;The Toolbox will check for duplicate AttributeTypes in the attrTypeList. If found it will
  1599. ;return 'daDuplicateAttrTypeErr'.
  1600. ;
  1601. DirLookupGetPB             RECORD    0
  1602. qLink                     ds.l   1        ; offset: $0 (0)
  1603. reserved1                 ds.l   1        ; offset: $4 (4)
  1604. reserved2                 ds.l   1        ; offset: $8 (8)
  1605. ioCompletion             ds.l   1        ; offset: $C (12)
  1606. ioResult                 ds.w   1        ; offset: $10 (16)
  1607. saveA5                     ds.l   1        ; offset: $12 (18)
  1608. reqCode                     ds.w   1        ; offset: $16 (22)
  1609. reserved                 ds.l   2        ; offset: $18 (24)
  1610. serverHint                 ds     AddrBlock ; offset: $20 (32)
  1611. dsRefNum                 ds.w   1        ; offset: $24 (36)
  1612. callID                     ds.l   1        ; offset: $26 (38)
  1613. identity                 ds.l   1        ; offset: $2A (42)
  1614. gReserved1                 ds.l   1        ; offset: $2E (46)
  1615. gReserved2                 ds.l   1        ; offset: $32 (50)
  1616. gReserved3                 ds.l   1        ; offset: $36 (54)
  1617. clientData                 ds.l   1        ; offset: $3A (58)
  1618. aRecordList                 ds.l   1        ; offset: $3E (62)        ;  --> an array of RecordID pointers 
  1619. attrTypeList             ds.l   1        ; offset: $42 (66)        ;  --> an array of attribute types 
  1620. cReserved                 ds.l   1        ; offset: $46 (70)        ;  --  
  1621. dReserved                 ds.l   1        ; offset: $4A (74)        ;  --  
  1622. eReserved                 ds.l   1        ; offset: $4E (78)        ;  --  
  1623. fReserved                 ds.l   1        ; offset: $52 (82)        ;  --  
  1624. recordIDCount             ds.l   1        ; offset: $56 (86)        ;  --> 
  1625. attrTypeCount             ds.l   1        ; offset: $5A (90)        ;  --> 
  1626. includeStartingPoint     ds.b   1        ; offset: $5E (94)        ;  --> if true return the value specified by the starting indices 
  1627. padByte                     ds.b   1        ; offset: $5F (95)
  1628. i1Reserved                 ds.w   1        ; offset: $60 (96)        ;  --  
  1629. getBuffer                 ds.l   1        ; offset: $62 (98)        ;  --> 
  1630. getBufferSize             ds.l   1        ; offset: $66 (102)        ;  --> 
  1631. startingRecordIndex         ds.l   1        ; offset: $6A (106)        ;  --> start from this record 
  1632. startingAttrTypeIndex     ds.l   1        ; offset: $6E (110)        ;  --> start from this attribute type 
  1633. startingAttribute         ds.l   14        ; offset: $72 (114)        ;  --> start from this attribute value 
  1634. pReserved                 ds.l   1        ; offset: $AA (170)        ;  --  
  1635. sizeof                     EQU *            ; size:   $AE (174)
  1636.                         ENDR
  1637.  
  1638. ; typedef struct DirLookupGetPB  DirLookupGetPB
  1639. ; The Lookup call-back functions are defined as follows: 
  1640. ; typedef ForEachLookupRecordIDUPP  ForEachLookupRecordID
  1641. ; typedef ForEachAttrTypeLookupUPP  ForEachAttrTypeLookup
  1642. ; typedef ForEachAttrValueUPP  ForEachAttrValue
  1643. ;
  1644. ;LookupParse:
  1645. ;
  1646. ;After a LookupGet call has completed, call LookupParse
  1647. ;to parse through the buffer that was filled in LookupGet.  The
  1648. ;toolbox will parse through the buffer and call the appropriate call-back routines
  1649. ;for each item in the getBuffer.
  1650. ;
  1651. ;'eachRecordID' will be called each time to return to the client one of the
  1652. ;RecordIDs from aRecordList.  The clientData parameter that you
  1653. ;pass in the parameter block will be passed to eachRecordID.
  1654. ;You are free to put anything in clientData - it is intended to allow
  1655. ;you some way to match the call-back to the original call (in case, for
  1656. ;example, you make simultaneous asynchronous LookupGet calls).  If you don't
  1657. ;want to get a call-back for each RecordID (for example, if you're looking up
  1658. ;attributes for only one RecordID), pass nil for eachRecordID.
  1659. ;
  1660. ;After forEachLocalRecordIDFunc is called, eachAttrType may be called to pass an
  1661. ;attribute type (one from attrTypeList) that exists in the record specified
  1662. ;in the last eachRecordID call.  If you don't want to get a call-back for
  1663. ;each AttributeType (for example, if you're looking up only one attribute type,
  1664. ;or you prefer to read the type from the Attribute struct during the eachAttrValue
  1665. ;call-back routine), pass nil for eachAttrType. However access controls may
  1666. ;prohibit you from reading some attribute types; in that case eachAttrValue
  1667. ;may not be called even though the value exists. Hence the client should
  1668. ;supply this call-back function to see the access controls for each attribute type.
  1669. ;
  1670. ;This will be followed by one or more calls to eachAttrValue, to pass the
  1671. ;type, tag, and attribute value.  NOTE THIS CHANGE:  you are no longer expected to
  1672. ;pass a pointer to a buffer in which to put the value.  Now you get a pointer to
  1673. ;the value, and you can process it within the call-back routine.
  1674. ;After one or more values are returned, eachAttrType may be called again to pass
  1675. ;another attribute type that exists in the last-specified RecordID.
  1676. ;
  1677. ;The client should return FALSE from eachRecordID, eachAttrType, and
  1678. ;eachAttrValue to continue processing of the LookupParse request.  Returning TRUE
  1679. ;from any call-back will terminate the LookupParse request.
  1680. ;
  1681. ;If LookupGet has failed with kOCEMoreData error, LookupParse will check to make sure that
  1682. ;ForEachAttributeValueFunc has been called at least once. If so, the client has the option
  1683. ;to continue from that attribute CreationID (for PAB/ADAP) in the next LookupGet call.
  1684. ;However, if it was not even called once, then the attribute value may be too big to fit in the
  1685. ;user's buffer. In this case, lastAttrValueCID (lastAttribute) and attrSize are returned in the
  1686. ;parse buffer and the call will fail with kOCEMoreAttrValue. However, it is possible that
  1687. ;ForEachAttributeValue was not called because the user does not have read access to some of
  1688. ;the attributeTypes in the list, and the buffer was full before even reading the creationID of
  1689. ;any of the attribute values.  A kOCEMoreData error is returned.
  1690. ;
  1691. ;For synchronous calls, the call-back routine actually runs as part of the same thread
  1692. ;of execution as the thread that made the LookupParse call.  That means that the
  1693. ;same low-memory globals, A5, stack, etc. are in effect during the call-back
  1694. ;that were in effect when the call was made.  Because of this, the call-back
  1695. ;routine has the same restrictions as the caller of LookupParse:
  1696. ;if LookupParse was not called from interrupt level, then the call-
  1697. ;back routine can allocate memory. For asynchronous calls, call-back routine is
  1698. ;like a ioCompletion except that A5 will be preserved for the application.
  1699. ;
  1700. DirLookupParsePB         RECORD    0
  1701. qLink                     ds.l   1        ; offset: $0 (0)
  1702. reserved1                 ds.l   1        ; offset: $4 (4)
  1703. reserved2                 ds.l   1        ; offset: $8 (8)
  1704. ioCompletion             ds.l   1        ; offset: $C (12)
  1705. ioResult                 ds.w   1        ; offset: $10 (16)
  1706. saveA5                     ds.l   1        ; offset: $12 (18)
  1707. reqCode                     ds.w   1        ; offset: $16 (22)
  1708. reserved                 ds.l   2        ; offset: $18 (24)
  1709. serverHint                 ds     AddrBlock ; offset: $20 (32)
  1710. dsRefNum                 ds.w   1        ; offset: $24 (36)
  1711. callID                     ds.l   1        ; offset: $26 (38)
  1712. identity                 ds.l   1        ; offset: $2A (42)
  1713. gReserved1                 ds.l   1        ; offset: $2E (46)
  1714. gReserved2                 ds.l   1        ; offset: $32 (50)
  1715. gReserved3                 ds.l   1        ; offset: $36 (54)
  1716. clientData                 ds.l   1        ; offset: $3A (58)
  1717. aRecordList                 ds.l   1        ; offset: $3E (62)        ;  --> must be same from the corresponding Get call 
  1718. attrTypeList             ds.l   1        ; offset: $42 (66)        ;  --> must be same from the corresponding Get call 
  1719. cReserved                 ds.l   1        ; offset: $46 (70)        ;  --  
  1720. eachRecordID             ds.l   1        ; offset: $4A (74)        ;  --> 
  1721. eachAttrType             ds.l   1        ; offset: $4E (78)        ;  --> 
  1722. eachAttrValue             ds.l   1        ; offset: $52 (82)        ;  --> 
  1723. recordIDCount             ds.l   1        ; offset: $56 (86)        ;  --> must be same from the corresponding Get call 
  1724. attrTypeCount             ds.l   1        ; offset: $5A (90)        ;  --> must be same from the corresponding Get call 
  1725. iReserved                 ds.l   1        ; offset: $5E (94)        ;  --  
  1726. getBuffer                 ds.l   1        ; offset: $62 (98)        ;  --> must be same from the corresponding Get call
  1727. getBufferSize             ds.l   1        ; offset: $66 (102)        ;  --> must be same from the corresponding Get call
  1728. lastRecordIndex             ds.l   1        ; offset: $6A (106)        ; <--  last RecordID processed when parse completed 
  1729. lastAttributeIndex         ds.l   1        ; offset: $6E (110)        ; <--  last Attribute Type processed when parse completed 
  1730. lastAttribute             ds.l   14        ; offset: $72 (114)        ; <--  last attribute value (with this CreationID) processed when parse completed 
  1731. attrSize                 ds.l   1        ; offset: $AA (170)        ; <--  length of the attribute we did not return 
  1732. sizeof                     EQU *            ; size:   $AE (174)
  1733.                         ENDR
  1734.  
  1735. ; typedef struct DirLookupParsePB  DirLookupParsePB
  1736. ; AddAttributeValue 
  1737. DirAddAttributeValuePB     RECORD    0
  1738. qLink                     ds.l   1        ; offset: $0 (0)
  1739. reserved1                 ds.l   1        ; offset: $4 (4)
  1740. reserved2                 ds.l   1        ; offset: $8 (8)
  1741. ioCompletion             ds.l   1        ; offset: $C (12)
  1742. ioResult                 ds.w   1        ; offset: $10 (16)
  1743. saveA5                     ds.l   1        ; offset: $12 (18)
  1744. reqCode                     ds.w   1        ; offset: $16 (22)
  1745. reserved                 ds.l   2        ; offset: $18 (24)
  1746. serverHint                 ds     AddrBlock ; offset: $20 (32)
  1747. dsRefNum                 ds.w   1        ; offset: $24 (36)
  1748. callID                     ds.l   1        ; offset: $26 (38)
  1749. identity                 ds.l   1        ; offset: $2A (42)
  1750. gReserved1                 ds.l   1        ; offset: $2E (46)
  1751. gReserved2                 ds.l   1        ; offset: $32 (50)
  1752. gReserved3                 ds.l   1        ; offset: $36 (54)
  1753. clientData                 ds.l   1        ; offset: $3A (58)
  1754. aRecord                     ds.l   1        ; offset: $3E (62)        ;  --> 
  1755. attr                     ds.l   1        ; offset: $42 (66)        ;  --> AttributeCreationID returned here 
  1756. sizeof                     EQU *            ; size:   $46 (70)
  1757.                         ENDR
  1758.  
  1759. ; typedef struct DirAddAttributeValuePB  DirAddAttributeValuePB
  1760. ;
  1761. ;aRecord must contain valid PackedRLI and a CreationID.
  1762. ;
  1763. ;Instead of passing type, length, and value in three separate
  1764. ;fields, we take a pointer to an Attribute structure that contains
  1765. ;all three, and has room for the AttributeCreationNumber.
  1766. ;The AttributeCreationID will be returned in the attr itself.
  1767. ;
  1768. ;The AttributeTag tells the catalog service that the attribute is an RString,
  1769. ;binary, or a RecordID.
  1770. ;
  1771. ;
  1772. ;DeleteAttributeType:
  1773. ;This call is provided so that an existing AttributeType can be deleted.
  1774. ;If any attribute values exist for this type, they will all be deleted
  1775. ;(if the user has access rights to delete the values) and then the attribute type
  1776. ;will be deleted. Otherwise dsAccessDenied error will be returned.
  1777. ;
  1778. DirDeleteAttributeTypePB RECORD    0
  1779. qLink                     ds.l   1        ; offset: $0 (0)
  1780. reserved1                 ds.l   1        ; offset: $4 (4)
  1781. reserved2                 ds.l   1        ; offset: $8 (8)
  1782. ioCompletion             ds.l   1        ; offset: $C (12)
  1783. ioResult                 ds.w   1        ; offset: $10 (16)
  1784. saveA5                     ds.l   1        ; offset: $12 (18)
  1785. reqCode                     ds.w   1        ; offset: $16 (22)
  1786. reserved                 ds.l   2        ; offset: $18 (24)
  1787. serverHint                 ds     AddrBlock ; offset: $20 (32)
  1788. dsRefNum                 ds.w   1        ; offset: $24 (36)
  1789. callID                     ds.l   1        ; offset: $26 (38)
  1790. identity                 ds.l   1        ; offset: $2A (42)
  1791. gReserved1                 ds.l   1        ; offset: $2E (46)
  1792. gReserved2                 ds.l   1        ; offset: $32 (50)
  1793. gReserved3                 ds.l   1        ; offset: $36 (54)
  1794. clientData                 ds.l   1        ; offset: $3A (58)
  1795. aRecord                     ds.l   1        ; offset: $3E (62)        ;  --> 
  1796. attrType                 ds.l   1        ; offset: $42 (66)        ;  --> 
  1797. sizeof                     EQU *            ; size:   $46 (70)
  1798.                         ENDR
  1799.  
  1800. ; typedef struct DirDeleteAttributeTypePB  DirDeleteAttributeTypePB
  1801. ;
  1802. ;    DeleteAttributeValue
  1803. ;
  1804. DirDeleteAttributeValuePB RECORD    0
  1805. qLink                     ds.l   1        ; offset: $0 (0)
  1806. reserved1                 ds.l   1        ; offset: $4 (4)
  1807. reserved2                 ds.l   1        ; offset: $8 (8)
  1808. ioCompletion             ds.l   1        ; offset: $C (12)
  1809. ioResult                 ds.w   1        ; offset: $10 (16)
  1810. saveA5                     ds.l   1        ; offset: $12 (18)
  1811. reqCode                     ds.w   1        ; offset: $16 (22)
  1812. reserved                 ds.l   2        ; offset: $18 (24)
  1813. serverHint                 ds     AddrBlock ; offset: $20 (32)
  1814. dsRefNum                 ds.w   1        ; offset: $24 (36)
  1815. callID                     ds.l   1        ; offset: $26 (38)
  1816. identity                 ds.l   1        ; offset: $2A (42)
  1817. gReserved1                 ds.l   1        ; offset: $2E (46)
  1818. gReserved2                 ds.l   1        ; offset: $32 (50)
  1819. gReserved3                 ds.l   1        ; offset: $36 (54)
  1820. clientData                 ds.l   1        ; offset: $3A (58)
  1821. aRecord                     ds.l   1        ; offset: $3E (62)        ;  -> 
  1822. attr                     ds.l   1        ; offset: $42 (66)        ;  -> 
  1823. sizeof                     EQU *            ; size:   $46 (70)
  1824.                         ENDR
  1825.  
  1826. ; typedef struct DirDeleteAttributeValuePB  DirDeleteAttributeValuePB
  1827. ;
  1828. ;    ChangeAttributeValue:
  1829. ;    currentAttr ==> the attribute to be changed. For ADAS and PAB CreationID is
  1830. ;                    sufficient
  1831. ;    newAttr     ==> new value for the attribute. For ADAS and PAB 
  1832. ;                    CreationID field will be set when
  1833. ;                    the call succeesfully completes
  1834. ;    
  1835. ;    aRecord     ==> must contain valid PackedRecordLocationInfo and a CreationID.
  1836. ;
  1837. ;
  1838. ;    
  1839. ;
  1840. DirChangeAttributeValuePB RECORD    0
  1841. qLink                     ds.l   1        ; offset: $0 (0)
  1842. reserved1                 ds.l   1        ; offset: $4 (4)
  1843. reserved2                 ds.l   1        ; offset: $8 (8)
  1844. ioCompletion             ds.l   1        ; offset: $C (12)
  1845. ioResult                 ds.w   1        ; offset: $10 (16)
  1846. saveA5                     ds.l   1        ; offset: $12 (18)
  1847. reqCode                     ds.w   1        ; offset: $16 (22)
  1848. reserved                 ds.l   2        ; offset: $18 (24)
  1849. serverHint                 ds     AddrBlock ; offset: $20 (32)
  1850. dsRefNum                 ds.w   1        ; offset: $24 (36)
  1851. callID                     ds.l   1        ; offset: $26 (38)
  1852. identity                 ds.l   1        ; offset: $2A (42)
  1853. gReserved1                 ds.l   1        ; offset: $2E (46)
  1854. gReserved2                 ds.l   1        ; offset: $32 (50)
  1855. gReserved3                 ds.l   1        ; offset: $36 (54)
  1856. clientData                 ds.l   1        ; offset: $3A (58)
  1857. aRecord                     ds.l   1        ; offset: $3E (62)        ;  -> 
  1858. currentAttr                 ds.l   1        ; offset: $42 (66)        ;  -> 
  1859. newAttr                     ds.l   1        ; offset: $46 (70)        ;  -> 
  1860. sizeof                     EQU *            ; size:   $4A (74)
  1861.                         ENDR
  1862.  
  1863. ; typedef struct DirChangeAttributeValuePB  DirChangeAttributeValuePB
  1864. ; VerifyAttributeValue 
  1865. DirVerifyAttributeValuePB RECORD    0
  1866. qLink                     ds.l   1        ; offset: $0 (0)
  1867. reserved1                 ds.l   1        ; offset: $4 (4)
  1868. reserved2                 ds.l   1        ; offset: $8 (8)
  1869. ioCompletion             ds.l   1        ; offset: $C (12)
  1870. ioResult                 ds.w   1        ; offset: $10 (16)
  1871. saveA5                     ds.l   1        ; offset: $12 (18)
  1872. reqCode                     ds.w   1        ; offset: $16 (22)
  1873. reserved                 ds.l   2        ; offset: $18 (24)
  1874. serverHint                 ds     AddrBlock ; offset: $20 (32)
  1875. dsRefNum                 ds.w   1        ; offset: $24 (36)
  1876. callID                     ds.l   1        ; offset: $26 (38)
  1877. identity                 ds.l   1        ; offset: $2A (42)
  1878. gReserved1                 ds.l   1        ; offset: $2E (46)
  1879. gReserved2                 ds.l   1        ; offset: $32 (50)
  1880. gReserved3                 ds.l   1        ; offset: $36 (54)
  1881. clientData                 ds.l   1        ; offset: $3A (58)
  1882. aRecord                     ds.l   1        ; offset: $3E (62)        ;  --> 
  1883. attr                     ds.l   1        ; offset: $42 (66)        ;  --> 
  1884. sizeof                     EQU *            ; size:   $46 (70)
  1885.                         ENDR
  1886.  
  1887. ; typedef struct DirVerifyAttributeValuePB  DirVerifyAttributeValuePB
  1888. ;
  1889. ;aRecord must contain valid PackedRLI and a CreationID.
  1890. ;
  1891. ;The attribute type and value are passed in the attribute structure.  If the
  1892. ;attribute CreationID is non-zero, the server will verify that an attribute with
  1893. ;the specified value and creation number exists in aRecord.  If the attribute
  1894. ;CreationID is zero, the server will verify the attribute by type and value
  1895. ;alone, and return the attribute CreationID in the Attribute struct if the
  1896. ;attribute exists.
  1897. ;
  1898. ;
  1899. ;EnumerateAttributeTypesGet:
  1900. ;The following two calls can be used to enumerate the attribute types present in
  1901. ;a specified RecordID.  The first, EnumerateAttributeTypesGet, processes the request
  1902. ;and reads the response into getBuffer, as much as will fit.  A kOCEMoreData error will
  1903. ;be returned if the buffer was not large enough.  After this call completes, the
  1904. ;client can call EnumerateAttributeTypesParse (see below).
  1905. ;
  1906. ;The user will able to continue from a startingPoint by setting a startingAttrType.
  1907. ;Typically, this should be the last value returned in EnumerateAttributeTypesParse call
  1908. ;when 'kOCEMoreData' is returned.
  1909. ;
  1910. ;If 'includeStartingPoint' is true when a 'startingAttrType' is specified, the starting value
  1911. ;will be included in the results, if it exists. If this is set to false, this value will not
  1912. ;be included. AttributeTypes following this type will be returned.
  1913. ;
  1914. DirEnumerateAttributeTypesGetPB RECORD    0
  1915. qLink                     ds.l   1        ; offset: $0 (0)
  1916. reserved1                 ds.l   1        ; offset: $4 (4)
  1917. reserved2                 ds.l   1        ; offset: $8 (8)
  1918. ioCompletion             ds.l   1        ; offset: $C (12)
  1919. ioResult                 ds.w   1        ; offset: $10 (16)
  1920. saveA5                     ds.l   1        ; offset: $12 (18)
  1921. reqCode                     ds.w   1        ; offset: $16 (22)
  1922. reserved                 ds.l   2        ; offset: $18 (24)
  1923. serverHint                 ds     AddrBlock ; offset: $20 (32)
  1924. dsRefNum                 ds.w   1        ; offset: $24 (36)
  1925. callID                     ds.l   1        ; offset: $26 (38)
  1926. identity                 ds.l   1        ; offset: $2A (42)
  1927. gReserved1                 ds.l   1        ; offset: $2E (46)
  1928. gReserved2                 ds.l   1        ; offset: $32 (50)
  1929. gReserved3                 ds.l   1        ; offset: $36 (54)
  1930. clientData                 ds.l   1        ; offset: $3A (58)
  1931. aRecord                     ds.l   1        ; offset: $3E (62)        ;  --> 
  1932. startingAttrType         ds.l   1        ; offset: $42 (66)        ;  --> starting point 
  1933. cReserved                 ds.l   1        ; offset: $46 (70)        ;  --  
  1934. dReserved                 ds.l   1        ; offset: $4A (74)        ;  --  
  1935. eReserved                 ds.l   1        ; offset: $4E (78)        ;  --  
  1936. fReserved                 ds.l   1        ; offset: $52 (82)        ;  --  
  1937. gReserved                 ds.l   1        ; offset: $56 (86)        ;  --  
  1938. hReserved                 ds.l   1        ; offset: $5A (90)        ;  --  
  1939. includeStartingPoint     ds.b   1        ; offset: $5E (94)        ;  --> if true return the attrType specified by starting point 
  1940. padByte                     ds.b   1        ; offset: $5F (95)
  1941. i1Reserved                 ds.w   1        ; offset: $60 (96)        ;  --  
  1942. getBuffer                 ds.l   1        ; offset: $62 (98)        ;  --> 
  1943. getBufferSize             ds.l   1        ; offset: $66 (102)        ;  --> 
  1944. sizeof                     EQU *            ; size:   $6A (106)
  1945.                         ENDR
  1946.  
  1947. ; typedef struct DirEnumerateAttributeTypesGetPB  DirEnumerateAttributeTypesGetPB
  1948. ; The call-back function is defined as follows: 
  1949. ; typedef ForEachAttrTypeUPP  ForEachAttrType
  1950. ;
  1951. ;EnumerateAttributeTypesParse:
  1952. ;After an EnumerateAttributeTypesGet call has completed, call EnumerateAttributeTypesParse
  1953. ;to parse through the buffer that was filled in EnumerateAttributeTypesGet.  The
  1954. ;toolbox will parse through the buffer and call the call-back routine for
  1955. ;each attribute type in the getBuffer.
  1956. ;
  1957. ;The client should return false from eachAttrType to continue
  1958. ;processing of the EnumerateAttributeTypesParse request.  Returning true will
  1959. ;terminate the EnumerateAttributeTypesParse request.  The clientData parameter that
  1960. ;you pass in the parameter block will be passed to eachAttrType.
  1961. ;You are free to put anything in clientData - it is intended to allow
  1962. ;you some way to match the call-back to the original call (in case, for
  1963. ;example, you make simultaneous asynchronous calls).
  1964. ;
  1965. ;For synchronous calls, the call-back routine actually runs as part of the same thread
  1966. ;of execution as the thread that made the EnumerateAttributeTypesParse call.  That means that the
  1967. ;same low-memory globals, A5, stack, etc. are in effect during the call-back
  1968. ;that were in effect when the call was made.  Because of this, the call-back
  1969. ;routine has the same restrictions as the caller of EnumerateAttributeTypesParse.
  1970. ;If EnumerateAttributeTypesParse was not called from interrupt level, then the call-
  1971. ;back routine can allocate memory. For asynchronous calls, call-back routine is
  1972. ;like a ioCompletion except that A5 will be preserved for the application.
  1973. ;
  1974. DirEnumerateAttributeTypesParsePB RECORD    0
  1975. qLink                     ds.l   1        ; offset: $0 (0)
  1976. reserved1                 ds.l   1        ; offset: $4 (4)
  1977. reserved2                 ds.l   1        ; offset: $8 (8)
  1978. ioCompletion             ds.l   1        ; offset: $C (12)
  1979. ioResult                 ds.w   1        ; offset: $10 (16)
  1980. saveA5                     ds.l   1        ; offset: $12 (18)
  1981. reqCode                     ds.w   1        ; offset: $16 (22)
  1982. reserved                 ds.l   2        ; offset: $18 (24)
  1983. serverHint                 ds     AddrBlock ; offset: $20 (32)
  1984. dsRefNum                 ds.w   1        ; offset: $24 (36)
  1985. callID                     ds.l   1        ; offset: $26 (38)
  1986. identity                 ds.l   1        ; offset: $2A (42)
  1987. gReserved1                 ds.l   1        ; offset: $2E (46)
  1988. gReserved2                 ds.l   1        ; offset: $32 (50)
  1989. gReserved3                 ds.l   1        ; offset: $36 (54)
  1990. clientData                 ds.l   1        ; offset: $3A (58)
  1991. aRecord                     ds.l   1        ; offset: $3E (62)        ;  --> Same as DirEnumerateAttributeTypesGetPB 
  1992. bReserved                 ds.l   1        ; offset: $42 (66)        ;  --  
  1993. cReserved                 ds.l   1        ; offset: $46 (70)        ;  --  
  1994. dReserved                 ds.l   1        ; offset: $4A (74)        ;  --  
  1995. eachAttrType             ds.l   1        ; offset: $4E (78)        ;  --> 
  1996. fReserved                 ds.l   1        ; offset: $52 (82)        ;  --  
  1997. gReserved                 ds.l   1        ; offset: $56 (86)        ;  --  
  1998. hReserved                 ds.l   1        ; offset: $5A (90)        ;  --  
  1999. iReserved                 ds.l   1        ; offset: $5E (94)        ;  --  
  2000. getBuffer                 ds.l   1        ; offset: $62 (98)        ;  --> 
  2001. getBufferSize             ds.l   1        ; offset: $66 (102)        ;  --> 
  2002. sizeof                     EQU *            ; size:   $6A (106)
  2003.                         ENDR
  2004.  
  2005. ; typedef struct DirEnumerateAttributeTypesParsePB  DirEnumerateAttributeTypesParsePB
  2006. ;
  2007. ;DirAbort:
  2008. ;With this call a user will able to abort an outstanding catalog service call.
  2009. ;A user must pass a pointer to the parameter block for the outstanding call.
  2010. ;In the current version of the product, the toolbox will process this call
  2011. ;for NetSearchADAPDirectoriesGet or FindADAPDirectoryByNetSearch calls and if possible
  2012. ;it will abort. For other calls for ADAP and PAB this will return 'daAbortFailErr'.
  2013. ;For CSAM catalogs, this call will be passed to the corresponding CSAM driver.
  2014. ;The CSAM driver may process this call or may return 'daAbortFailErr'. This call can
  2015. ;be called only in synchronous mode. Since the abort call makes references to fields in
  2016. ;the pb associated with the original call, this pb must not be disposed or or altered if
  2017. ;the original call completes before the abort call has completed.
  2018. ;
  2019. DirAbortPB                 RECORD    0
  2020. qLink                     ds.l   1        ; offset: $0 (0)
  2021. reserved1                 ds.l   1        ; offset: $4 (4)
  2022. reserved2                 ds.l   1        ; offset: $8 (8)
  2023. ioCompletion             ds.l   1        ; offset: $C (12)
  2024. ioResult                 ds.w   1        ; offset: $10 (16)
  2025. saveA5                     ds.l   1        ; offset: $12 (18)
  2026. reqCode                     ds.w   1        ; offset: $16 (22)
  2027. reserved                 ds.l   2        ; offset: $18 (24)
  2028. serverHint                 ds     AddrBlock ; offset: $20 (32)
  2029. dsRefNum                 ds.w   1        ; offset: $24 (36)
  2030. callID                     ds.l   1        ; offset: $26 (38)
  2031. identity                 ds.l   1        ; offset: $2A (42)
  2032. gReserved1                 ds.l   1        ; offset: $2E (46)
  2033. gReserved2                 ds.l   1        ; offset: $32 (50)
  2034. gReserved3                 ds.l   1        ; offset: $36 (54)
  2035. clientData                 ds.l   1        ; offset: $3A (58)
  2036. pb                         ds.l   1        ; offset: $3E (62)        ;  --> pb for the call which must be aborted 
  2037. sizeof                     EQU *            ; size:   $42 (66)
  2038.                         ENDR
  2039.  
  2040. ; typedef struct DirAbortPB  DirAbortPB
  2041. ;
  2042. ;AddPseudonym:
  2043. ;An alternate name and type can be added to a given record. If allowDuplicate
  2044. ;is set the name and type will be added even if the same name and type already
  2045. ;exists.
  2046. ;
  2047. DirAddPseudonymPB         RECORD    0
  2048. qLink                     ds.l   1        ; offset: $0 (0)
  2049. reserved1                 ds.l   1        ; offset: $4 (4)
  2050. reserved2                 ds.l   1        ; offset: $8 (8)
  2051. ioCompletion             ds.l   1        ; offset: $C (12)
  2052. ioResult                 ds.w   1        ; offset: $10 (16)
  2053. saveA5                     ds.l   1        ; offset: $12 (18)
  2054. reqCode                     ds.w   1        ; offset: $16 (22)
  2055. reserved                 ds.l   2        ; offset: $18 (24)
  2056. serverHint                 ds     AddrBlock ; offset: $20 (32)
  2057. dsRefNum                 ds.w   1        ; offset: $24 (36)
  2058. callID                     ds.l   1        ; offset: $26 (38)
  2059. identity                 ds.l   1        ; offset: $2A (42)
  2060. gReserved1                 ds.l   1        ; offset: $2E (46)
  2061. gReserved2                 ds.l   1        ; offset: $32 (50)
  2062. gReserved3                 ds.l   1        ; offset: $36 (54)
  2063. clientData                 ds.l   1        ; offset: $3A (58)
  2064. aRecord                     ds.l   1        ; offset: $3E (62)        ;  --> RecordID to which pseudonym is to be added 
  2065. pseudonymName             ds.l   1        ; offset: $42 (66)        ;  --> new name to be added as pseudonym 
  2066. pseudonymType             ds.l   1        ; offset: $46 (70)        ;  --> new name to be added as pseudonym 
  2067. allowDuplicate             ds.b   1        ; offset: $4A (74)        ;  --> 
  2068. filler1                     ds.b   1        ; offset: $4B (75)
  2069. sizeof                     EQU *            ; size:   $4C (76)
  2070.                         ENDR
  2071.  
  2072. ; typedef struct DirAddPseudonymPB  DirAddPseudonymPB
  2073. ;
  2074. ;DeletePseudonym:
  2075. ;An alternate name and type for a given record can be deleted.
  2076. ;
  2077. DirDeletePseudonymPB     RECORD    0
  2078. qLink                     ds.l   1        ; offset: $0 (0)
  2079. reserved1                 ds.l   1        ; offset: $4 (4)
  2080. reserved2                 ds.l   1        ; offset: $8 (8)
  2081. ioCompletion             ds.l   1        ; offset: $C (12)
  2082. ioResult                 ds.w   1        ; offset: $10 (16)
  2083. saveA5                     ds.l   1        ; offset: $12 (18)
  2084. reqCode                     ds.w   1        ; offset: $16 (22)
  2085. reserved                 ds.l   2        ; offset: $18 (24)
  2086. serverHint                 ds     AddrBlock ; offset: $20 (32)
  2087. dsRefNum                 ds.w   1        ; offset: $24 (36)
  2088. callID                     ds.l   1        ; offset: $26 (38)
  2089. identity                 ds.l   1        ; offset: $2A (42)
  2090. gReserved1                 ds.l   1        ; offset: $2E (46)
  2091. gReserved2                 ds.l   1        ; offset: $32 (50)
  2092. gReserved3                 ds.l   1        ; offset: $36 (54)
  2093. clientData                 ds.l   1        ; offset: $3A (58)
  2094. aRecord                     ds.l   1        ; offset: $3E (62)        ;  --> RecordID to which pseudonym to be added 
  2095. pseudonymName             ds.l   1        ; offset: $42 (66)        ;  --> pseudonymName to be deleted 
  2096. pseudonymType             ds.l   1        ; offset: $46 (70)        ;  --> pseudonymType to be deleted 
  2097. sizeof                     EQU *            ; size:   $4A (74)
  2098.                         ENDR
  2099.  
  2100. ; typedef struct DirDeletePseudonymPB  DirDeletePseudonymPB
  2101. ;
  2102. ;    AddAlias:
  2103. ;    This call can be used to create an alias  record. The alias
  2104. ;    can be created either in the same or different cluster. ADAS will not support
  2105. ;    this call for this release. A new catalog capability flag 'kSupportsAlias' will indicate
  2106. ;    if the catalog supports this call. PAB's will support this call. For the PAB implementation,
  2107. ;    this call will create a record with the name and type specified an aRecord.
  2108. ;    This call works exactly like AddRecord.
  2109. ;    If 'allowDuplicate' is false and another record with same name and type already exists
  2110. ;    'daNoDupAllowed' error will be returned.
  2111. ;
  2112. DirAddAliasPB             RECORD    0
  2113. qLink                     ds.l   1        ; offset: $0 (0)
  2114. reserved1                 ds.l   1        ; offset: $4 (4)
  2115. reserved2                 ds.l   1        ; offset: $8 (8)
  2116. ioCompletion             ds.l   1        ; offset: $C (12)
  2117. ioResult                 ds.w   1        ; offset: $10 (16)
  2118. saveA5                     ds.l   1        ; offset: $12 (18)
  2119. reqCode                     ds.w   1        ; offset: $16 (22)
  2120. reserved                 ds.l   2        ; offset: $18 (24)
  2121. serverHint                 ds     AddrBlock ; offset: $20 (32)
  2122. dsRefNum                 ds.w   1        ; offset: $24 (36)
  2123. callID                     ds.l   1        ; offset: $26 (38)
  2124. identity                 ds.l   1        ; offset: $2A (42)
  2125. gReserved1                 ds.l   1        ; offset: $2E (46)
  2126. gReserved2                 ds.l   1        ; offset: $32 (50)
  2127. gReserved3                 ds.l   1        ; offset: $36 (54)
  2128. clientData                 ds.l   1        ; offset: $3A (58)
  2129. aRecord                     ds.l   1        ; offset: $3E (62)        ;  -> 
  2130. allowDuplicate             ds.b   1        ; offset: $42 (66)        ;  -> 
  2131. filler1                     ds.b   1        ; offset: $43 (67)
  2132. sizeof                     EQU *            ; size:   $44 (68)
  2133.                         ENDR
  2134.  
  2135. ; typedef struct DirAddAliasPB  DirAddAliasPB
  2136. ;
  2137. ;DirFindValue:
  2138. ;This call can be used to find the occurrence of a value. The value
  2139. ;to be matched is passed in the buffer 'matchingData' field. The current
  2140. ;ADAP/PAB implementation will match a maximum of 32 bytes of data.
  2141. ;For attribute values in the PAB/ADAP implementation, only the first 32 bytes will
  2142. ;be used for comparing the occurrence of data. Search can be restricted to
  2143. ;a particular record and/or attribute type by specifying 'aRecord' or 'aType'.
  2144. ;After finding one occurrence, 'startingRecord' and 'startingAttribute'
  2145. ;can be specified to find the next occurrence of the same value.
  2146. ;'sortDirection' can be specified with starting values to search forward or backward.
  2147. ;When a matching value is found, the 'recordFound' indicates the reccordID in which the
  2148. ;data occurrence was found, 'attributeFound' indicates the attribute with in which the
  2149. ;matching data was found. ADAP/PAB implementation returns only the type and creationID of
  2150. ;attributes. Catalogs which don't support creationIDs may return the
  2151. ;complete value; hence this call may need a buffer to hold the data. For ADAP/PAB implementations
  2152. ;the user has to make a DirLookup call to get the actual data. 'recordFound' and
  2153. ;'attributeFound' can be used to initialize 'startingRecord' and 'startingAttribute' to
  2154. ;find the next occurrence of the value.
  2155. ;
  2156. DirFindValuePB             RECORD    0
  2157. qLink                     ds.l   1        ; offset: $0 (0)
  2158. reserved1                 ds.l   1        ; offset: $4 (4)
  2159. reserved2                 ds.l   1        ; offset: $8 (8)
  2160. ioCompletion             ds.l   1        ; offset: $C (12)
  2161. ioResult                 ds.w   1        ; offset: $10 (16)
  2162. saveA5                     ds.l   1        ; offset: $12 (18)
  2163. reqCode                     ds.w   1        ; offset: $16 (22)
  2164. reserved                 ds.l   2        ; offset: $18 (24)
  2165. serverHint                 ds     AddrBlock ; offset: $20 (32)
  2166. dsRefNum                 ds.w   1        ; offset: $24 (36)
  2167. callID                     ds.l   1        ; offset: $26 (38)
  2168. identity                 ds.l   1        ; offset: $2A (42)
  2169. gReserved1                 ds.l   1        ; offset: $2E (46)
  2170. gReserved2                 ds.l   1        ; offset: $32 (50)
  2171. gReserved3                 ds.l   1        ; offset: $36 (54)
  2172. clientData                 ds.l   1        ; offset: $3A (58)
  2173. aRLI                     ds.l   1        ; offset: $3E (62)        ;  --> an RLI specifying the cluster to be enumerated 
  2174. aRecord                     ds.l   1        ; offset: $42 (66)        ;  --> if not nil, look only in this record 
  2175. attrType                 ds.l   1        ; offset: $46 (70)        ;  --> if not nil, look only in this attribute type 
  2176. startingRecord             ds.l   1        ; offset: $4A (74)        ;  --> record in which to start searching 
  2177. startingAttribute         ds.l   1        ; offset: $4E (78)        ;  --> attribute in which to start searching 
  2178. recordFound                 ds.l   1        ; offset: $52 (82)        ; <--  record in which data was found 
  2179. attributeFound             ds.l   14        ; offset: $56 (86)        ; <--  attribute in which data was found 
  2180. matchSize                 ds.l   1        ; offset: $8E (142)        ;  --> length of matching bytes 
  2181. matchingData             ds.l   1        ; offset: $92 (146)        ;  --> data bytes to be matched in search 
  2182. sortDirection             ds.w   1        ; offset: $96 (150)        ;  --> sort direction (forwards or backwards) 
  2183. sizeof                     EQU *            ; size:   $98 (152)
  2184.                         ENDR
  2185.  
  2186. ; typedef struct DirFindValuePB  DirFindValuePB
  2187. ;
  2188. ;EnumeratePseudonymGet:
  2189. ;This call can be used to enumerate the existing pseudonyms for
  2190. ;a given record specified in 'aRecord'. A starting point can be specified
  2191. ;by 'startingName' and 'startingType'. If the 'includeStartingPoint' boolean
  2192. ;is true and a starting point is specified, the name specified by startingName
  2193. ;and startingType also is returned in the results, if it exists. If this is set to false,
  2194. ;the pseudonym in startingName and Type is not included.
  2195. ;Pseudonyms returned in the 'getBuffer' can be extracted by making an
  2196. ;EnumeratePseudonymParse call. The results will consist of a RecordID with the
  2197. ;name and type of the pseudonym. If the buffer could not hold all the results, then
  2198. ;'kOCEMoreData' error will be returned. The user will be able to continue the call by
  2199. ;using the last result returned as starting point for the next call.
  2200. ;
  2201. DirEnumeratePseudonymGetPB RECORD    0
  2202. qLink                     ds.l   1        ; offset: $0 (0)
  2203. reserved1                 ds.l   1        ; offset: $4 (4)
  2204. reserved2                 ds.l   1        ; offset: $8 (8)
  2205. ioCompletion             ds.l   1        ; offset: $C (12)
  2206. ioResult                 ds.w   1        ; offset: $10 (16)
  2207. saveA5                     ds.l   1        ; offset: $12 (18)
  2208. reqCode                     ds.w   1        ; offset: $16 (22)
  2209. reserved                 ds.l   2        ; offset: $18 (24)
  2210. serverHint                 ds     AddrBlock ; offset: $20 (32)
  2211. dsRefNum                 ds.w   1        ; offset: $24 (36)
  2212. callID                     ds.l   1        ; offset: $26 (38)
  2213. identity                 ds.l   1        ; offset: $2A (42)
  2214. gReserved1                 ds.l   1        ; offset: $2E (46)
  2215. gReserved2                 ds.l   1        ; offset: $32 (50)
  2216. gReserved3                 ds.l   1        ; offset: $36 (54)
  2217. clientData                 ds.l   1        ; offset: $3A (58)
  2218. aRecord                     ds.l   1        ; offset: $3E (62)        ;  --> 
  2219. startingName             ds.l   1        ; offset: $42 (66)        ;  --> 
  2220. startingType             ds.l   1        ; offset: $46 (70)        ;  --> 
  2221. dReserved                 ds.l   1        ; offset: $4A (74)        ;  --  
  2222. eReserved                 ds.l   1        ; offset: $4E (78)        ;  --  
  2223. fReserved                 ds.l   1        ; offset: $52 (82)        ;  --  
  2224. gReserved                 ds.l   1        ; offset: $56 (86)        ;  --  
  2225. hReserved                 ds.l   1        ; offset: $5A (90)        ;  --  
  2226. includeStartingPoint     ds.b   1        ; offset: $5E (94)        ;  --> if true return the Pseudonym specified by starting point will be included 
  2227. padByte                     ds.b   1        ; offset: $5F (95)
  2228. i1Reserved                 ds.w   1        ; offset: $60 (96)        ;  --  
  2229. getBuffer                 ds.l   1        ; offset: $62 (98)        ;  --> 
  2230. getBufferSize             ds.l   1        ; offset: $66 (102)        ;  --> 
  2231. sizeof                     EQU *            ; size:   $6A (106)
  2232.                         ENDR
  2233.  
  2234. ; typedef struct DirEnumeratePseudonymGetPB  DirEnumeratePseudonymGetPB
  2235. ; The call-back function is defined as follows: 
  2236. ; typedef ForEachRecordIDUPP  ForEachRecordID
  2237. ;
  2238. ;EnumeratePseudonymParse:
  2239. ;The pseudonyms returned in the 'getBuffer' from the EnumeratePseudonymGet call
  2240. ;can be extracted by using the EnumeratePseudonymParse call. 'eachRecordID'
  2241. ;will be called for each pseudonym.
  2242. ;
  2243. ;Returning true from any call-back will terminate the EnumeratePseudonymParse call.
  2244. ;
  2245. ;For synchronous calls, the call-back routine actually runs as part of the same thread
  2246. ;of execution as the thread that made the EnumeratePseudonymParse call.  That means that the
  2247. ;same low-memory globals, A5, stack, etc. are in effect during the call-back
  2248. ;that were in effect when the call was made.  Because of this, the call-back
  2249. ;routine has the same restrictions as the caller of EnumeratePseudonymParse:
  2250. ;if EnumeratePseudonymParse was not called from interrupt level, then the call-
  2251. ;back routine can allocate memory. For asynchronous calls, call-back routine is
  2252. ;like a ioCompletion except that A5 will be preserved for the application.
  2253. ;
  2254. DirEnumeratePseudonymParsePB RECORD    0
  2255. qLink                     ds.l   1        ; offset: $0 (0)
  2256. reserved1                 ds.l   1        ; offset: $4 (4)
  2257. reserved2                 ds.l   1        ; offset: $8 (8)
  2258. ioCompletion             ds.l   1        ; offset: $C (12)
  2259. ioResult                 ds.w   1        ; offset: $10 (16)
  2260. saveA5                     ds.l   1        ; offset: $12 (18)
  2261. reqCode                     ds.w   1        ; offset: $16 (22)
  2262. reserved                 ds.l   2        ; offset: $18 (24)
  2263. serverHint                 ds     AddrBlock ; offset: $20 (32)
  2264. dsRefNum                 ds.w   1        ; offset: $24 (36)
  2265. callID                     ds.l   1        ; offset: $26 (38)
  2266. identity                 ds.l   1        ; offset: $2A (42)
  2267. gReserved1                 ds.l   1        ; offset: $2E (46)
  2268. gReserved2                 ds.l   1        ; offset: $32 (50)
  2269. gReserved3                 ds.l   1        ; offset: $36 (54)
  2270. clientData                 ds.l   1        ; offset: $3A (58)
  2271. aRecord                     ds.l   1        ; offset: $3E (62)        ;  --> same as DirEnumerateAliasesGetPB 
  2272. bReserved                 ds.l   1        ; offset: $42 (66)        ;  --  
  2273. cReserved                 ds.l   1        ; offset: $46 (70)        ;  --  
  2274. eachRecordID             ds.l   1        ; offset: $4A (74)        ;  --> 
  2275. eReserved                 ds.l   1        ; offset: $4E (78)        ;  --  
  2276. fReserved                 ds.l   1        ; offset: $52 (82)        ;  --  
  2277. gReserved                 ds.l   1        ; offset: $56 (86)        ;  --  
  2278. hReserved                 ds.l   1        ; offset: $5A (90)        ;  --  
  2279. iReserved                 ds.l   1        ; offset: $5E (94)        ;  --  
  2280. getBuffer                 ds.l   1        ; offset: $62 (98)        ;  --> 
  2281. getBufferSize             ds.l   1        ; offset: $66 (102)        ;  --> 
  2282. sizeof                     EQU *            ; size:   $6A (106)
  2283.                         ENDR
  2284.  
  2285. ; typedef struct DirEnumeratePseudonymParsePB  DirEnumeratePseudonymParsePB
  2286. ; GetNameAndType 
  2287. DirGetNameAndTypePB     RECORD    0
  2288. qLink                     ds.l   1        ; offset: $0 (0)
  2289. reserved1                 ds.l   1        ; offset: $4 (4)
  2290. reserved2                 ds.l   1        ; offset: $8 (8)
  2291. ioCompletion             ds.l   1        ; offset: $C (12)
  2292. ioResult                 ds.w   1        ; offset: $10 (16)
  2293. saveA5                     ds.l   1        ; offset: $12 (18)
  2294. reqCode                     ds.w   1        ; offset: $16 (22)
  2295. reserved                 ds.l   2        ; offset: $18 (24)
  2296. serverHint                 ds     AddrBlock ; offset: $20 (32)
  2297. dsRefNum                 ds.w   1        ; offset: $24 (36)
  2298. callID                     ds.l   1        ; offset: $26 (38)
  2299. identity                 ds.l   1        ; offset: $2A (42)
  2300. gReserved1                 ds.l   1        ; offset: $2E (46)
  2301. gReserved2                 ds.l   1        ; offset: $32 (50)
  2302. gReserved3                 ds.l   1        ; offset: $36 (54)
  2303. clientData                 ds.l   1        ; offset: $3A (58)
  2304. aRecord                     ds.l   1        ; offset: $3E (62)        ;  --> 
  2305. sizeof                     EQU *            ; size:   $42 (66)
  2306.                         ENDR
  2307.  
  2308. ; typedef struct DirGetNameAndTypePB  DirGetNameAndTypePB
  2309. ;
  2310. ;aRecord must contain valid RLI and a CreationID.  It
  2311. ;must also contain pointers to maximum-length RStrings (name and type fields)
  2312. ;in which will be returned the record's distinguished name and type.
  2313. ;
  2314. ;
  2315. ;SetNameAndType:
  2316. ;This call can be used to change a name and type for a record. The record
  2317. ;to be renamed is specified using 'aRecord'.
  2318. ;'newName' and 'newType' indicate the name and type to be set.
  2319. ;'allowDuplicate' if true indicates that name is to be set even if another
  2320. ;name and type exactly matches the newName and newType specified.
  2321. ;
  2322. ;'newName' and 'newType' are required since the catalogs not supporting
  2323. ;CreationID require name and type fields in the recordID to identify a given
  2324. ;record.
  2325. ;
  2326. DirSetNameAndTypePB     RECORD    0
  2327. qLink                     ds.l   1        ; offset: $0 (0)
  2328. reserved1                 ds.l   1        ; offset: $4 (4)
  2329. reserved2                 ds.l   1        ; offset: $8 (8)
  2330. ioCompletion             ds.l   1        ; offset: $C (12)
  2331. ioResult                 ds.w   1        ; offset: $10 (16)
  2332. saveA5                     ds.l   1        ; offset: $12 (18)
  2333. reqCode                     ds.w   1        ; offset: $16 (22)
  2334. reserved                 ds.l   2        ; offset: $18 (24)
  2335. serverHint                 ds     AddrBlock ; offset: $20 (32)
  2336. dsRefNum                 ds.w   1        ; offset: $24 (36)
  2337. callID                     ds.l   1        ; offset: $26 (38)
  2338. identity                 ds.l   1        ; offset: $2A (42)
  2339. gReserved1                 ds.l   1        ; offset: $2E (46)
  2340. gReserved2                 ds.l   1        ; offset: $32 (50)
  2341. gReserved3                 ds.l   1        ; offset: $36 (54)
  2342. clientData                 ds.l   1        ; offset: $3A (58)
  2343. aRecord                     ds.l   1        ; offset: $3E (62)        ;  --> 
  2344. allowDuplicate             ds.b   1        ; offset: $42 (66)        ;  --> 
  2345. padByte                     ds.b   1        ; offset: $43 (67)
  2346. newName                     ds.l   1        ; offset: $44 (68)        ;  --> new name for the record 
  2347. newType                     ds.l   1        ; offset: $48 (72)        ;  --> new type for the record 
  2348. sizeof                     EQU *            ; size:   $4C (76)
  2349.                         ENDR
  2350.  
  2351. ; typedef struct DirSetNameAndTypePB  DirSetNameAndTypePB
  2352. ;
  2353. ;DirGetMetaRecordInfo: This call can be made to obtain
  2354. ;the MetaRecordInfo for a given record. Information returned
  2355. ;is 16 bytes of OPAQUE information about the record.
  2356. ;
  2357. DirGetRecordMetaInfoPB     RECORD    0
  2358. qLink                     ds.l   1        ; offset: $0 (0)
  2359. reserved1                 ds.l   1        ; offset: $4 (4)
  2360. reserved2                 ds.l   1        ; offset: $8 (8)
  2361. ioCompletion             ds.l   1        ; offset: $C (12)
  2362. ioResult                 ds.w   1        ; offset: $10 (16)
  2363. saveA5                     ds.l   1        ; offset: $12 (18)
  2364. reqCode                     ds.w   1        ; offset: $16 (22)
  2365. reserved                 ds.l   2        ; offset: $18 (24)
  2366. serverHint                 ds     AddrBlock ; offset: $20 (32)
  2367. dsRefNum                 ds.w   1        ; offset: $24 (36)
  2368. callID                     ds.l   1        ; offset: $26 (38)
  2369. identity                 ds.l   1        ; offset: $2A (42)
  2370. gReserved1                 ds.l   1        ; offset: $2E (46)
  2371. gReserved2                 ds.l   1        ; offset: $32 (50)
  2372. gReserved3                 ds.l   1        ; offset: $36 (54)
  2373. clientData                 ds.l   1        ; offset: $3A (58)
  2374. aRecord                     ds.l   1        ; offset: $3E (62)        ;  --> 
  2375. metaInfo                 ds     DirMetaInfo ; offset: $42 (66)    ; <--  
  2376. sizeof                     EQU *            ; size:   $52 (82)
  2377.                         ENDR
  2378.  
  2379. ; typedef struct DirGetRecordMetaInfoPB  DirGetRecordMetaInfoPB
  2380. ;
  2381. ;DirGetDNodeMetaInfo: This call can be made to obtain
  2382. ;the DNodeMetaInfo for a given Packed RLI. Information returned
  2383. ;is 16 bytes of OPAQUE information about the DNode.
  2384. ;
  2385. DirGetDNodeMetaInfoPB     RECORD    0
  2386. qLink                     ds.l   1        ; offset: $0 (0)
  2387. reserved1                 ds.l   1        ; offset: $4 (4)
  2388. reserved2                 ds.l   1        ; offset: $8 (8)
  2389. ioCompletion             ds.l   1        ; offset: $C (12)
  2390. ioResult                 ds.w   1        ; offset: $10 (16)
  2391. saveA5                     ds.l   1        ; offset: $12 (18)
  2392. reqCode                     ds.w   1        ; offset: $16 (22)
  2393. reserved                 ds.l   2        ; offset: $18 (24)
  2394. serverHint                 ds     AddrBlock ; offset: $20 (32)
  2395. dsRefNum                 ds.w   1        ; offset: $24 (36)
  2396. callID                     ds.l   1        ; offset: $26 (38)
  2397. identity                 ds.l   1        ; offset: $2A (42)
  2398. gReserved1                 ds.l   1        ; offset: $2E (46)
  2399. gReserved2                 ds.l   1        ; offset: $32 (50)
  2400. gReserved3                 ds.l   1        ; offset: $36 (54)
  2401. clientData                 ds.l   1        ; offset: $3A (58)
  2402. pRLI                     ds.l   1        ; offset: $3E (62)        ;  --> 
  2403. metaInfo                 ds     DirMetaInfo ; offset: $42 (66)    ; <--  
  2404. sizeof                     EQU *            ; size:   $52 (82)
  2405.                         ENDR
  2406.  
  2407. ; typedef struct DirGetDNodeMetaInfoPB  DirGetDNodeMetaInfoPB
  2408. ;
  2409. ;EnumerateDirectoriesGet:
  2410. ;A user can enumerate all the catalogs installed. This includes installed
  2411. ;ADAP and CSAM catalogs. The user can specify a signature as input to restrict
  2412. ;the results. kDirADAPKind will return only ADAP catalogs, kDirDSAMKind
  2413. ;will return all CSAM catalogs. kDirAllKinds will get both ADAP & CSAM catalogs.
  2414. ;A specific signature (e.g. X.500) may be used to get catalogs with an X.500 signature.
  2415. ;The information for each catalog returned will have directoryName, discriminator and features.
  2416. ;
  2417. ;If the user receives 'noErr' or 'kOCEMoreData', the buffer will contain valid results. A user
  2418. ;can extract the results in the 'getBuffer' by making an DirEnumerateDirectories call.
  2419. ;
  2420. ;If 'kOCEMoreData' is received, the user can continue enumeration by using the last catalog and
  2421. ;discriminator as startingDirectoryName and staringDirDiscriminator in the next call.
  2422. ;
  2423. ;If 'includeStartingPoint' is true and a starting point is specified,
  2424. ;the staring point will be returned in the result. If false, it is not included.
  2425. ;
  2426. DirEnumerateDirectoriesGetPB RECORD    0
  2427. qLink                     ds.l   1        ; offset: $0 (0)
  2428. reserved1                 ds.l   1        ; offset: $4 (4)
  2429. reserved2                 ds.l   1        ; offset: $8 (8)
  2430. ioCompletion             ds.l   1        ; offset: $C (12)
  2431. ioResult                 ds.w   1        ; offset: $10 (16)
  2432. saveA5                     ds.l   1        ; offset: $12 (18)
  2433. reqCode                     ds.w   1        ; offset: $16 (22)
  2434. reserved                 ds.l   2        ; offset: $18 (24)
  2435. serverHint                 ds     AddrBlock ; offset: $20 (32)
  2436. dsRefNum                 ds.w   1        ; offset: $24 (36)
  2437. callID                     ds.l   1        ; offset: $26 (38)
  2438. identity                 ds.l   1        ; offset: $2A (42)
  2439. gReserved1                 ds.l   1        ; offset: $2E (46)
  2440. gReserved2                 ds.l   1        ; offset: $32 (50)
  2441. gReserved3                 ds.l   1        ; offset: $36 (54)
  2442. clientData                 ds.l   1        ; offset: $3A (58)
  2443. directoryKind             ds.l   1        ; offset: $3E (62)        ;  --> enumerate catalogs bearing this signature 
  2444. startingDirectoryName     ds.l   1        ; offset: $42 (66)        ;  --> staring catalog name 
  2445. startingDirDiscriminator ds.l   2        ; offset: $46 (70)        ;  --> staring catalog discriminator 
  2446. eReserved                 ds.l   1        ; offset: $4E (78)        ;  --  
  2447. fReserved                 ds.l   1        ; offset: $52 (82)        ;  --  
  2448. gReserved                 ds.l   1        ; offset: $56 (86)        ;  --  
  2449. hReserved                 ds.l   1        ; offset: $5A (90)        ;  --  
  2450. includeStartingPoint     ds.b   1        ; offset: $5E (94)        ;  --> if true return the catalog specified by starting point 
  2451. padByte                     ds.b   1        ; offset: $5F (95)
  2452. i1Reserved                 ds.w   1        ; offset: $60 (96)        ;  --  
  2453. getBuffer                 ds.l   1        ; offset: $62 (98)        ;  --> 
  2454. getBufferSize             ds.l   1        ; offset: $66 (102)        ;  --> 
  2455. sizeof                     EQU *            ; size:   $6A (106)
  2456.                         ENDR
  2457.  
  2458. ; typedef struct DirEnumerateDirectoriesGetPB  DirEnumerateDirectoriesGetPB
  2459. ; typedef ForEachDirectoryUPP  ForEachDirectory
  2460. ;
  2461. ;EnumerateDirectoriesParse:
  2462. ;The catalog info returned in 'getBuffer' from the EnumerateDirectoriesGet call
  2463. ;can be extracted using the EnumerateDirectoriesParse call. 'eachDirectory' will
  2464. ;be called for each catalog.
  2465. ;
  2466. ;Returning true from any call-back will terminate the EnumerateDirectoriesParse call.
  2467. ;
  2468. ;For synchronous calls, the call-back routine actually runs as part of the same thread
  2469. ;of execution as the thread that made the EnumerateDirectoriesParse call.  That means that the
  2470. ;same low-memory globals, A5, stack, etc. are in effect during the call-back
  2471. ;that were in effect when the call was made.  Because of this, the call-back
  2472. ;routine has the same restrictions as the caller of EnumerateDirectoriesParse:
  2473. ;if EnumerateDirectoriesParse was not called from interrupt level, then the call-
  2474. ;back routine can allocate memory. For asynchronous calls, call-back routine is
  2475. ;like a ioCompletion except that A5 will be preserved for the application.
  2476. ;
  2477. ;eachDirectory will be called each time to return to the client a
  2478. ;DirectoryName, DirDiscriminator, and features for that catalog.
  2479. ;
  2480. DirEnumerateDirectoriesParsePB RECORD    0
  2481. qLink                     ds.l   1        ; offset: $0 (0)
  2482. reserved1                 ds.l   1        ; offset: $4 (4)
  2483. reserved2                 ds.l   1        ; offset: $8 (8)
  2484. ioCompletion             ds.l   1        ; offset: $C (12)
  2485. ioResult                 ds.w   1        ; offset: $10 (16)
  2486. saveA5                     ds.l   1        ; offset: $12 (18)
  2487. reqCode                     ds.w   1        ; offset: $16 (22)
  2488. reserved                 ds.l   2        ; offset: $18 (24)
  2489. serverHint                 ds     AddrBlock ; offset: $20 (32)
  2490. dsRefNum                 ds.w   1        ; offset: $24 (36)
  2491. callID                     ds.l   1        ; offset: $26 (38)
  2492. identity                 ds.l   1        ; offset: $2A (42)
  2493. gReserved1                 ds.l   1        ; offset: $2E (46)
  2494. gReserved2                 ds.l   1        ; offset: $32 (50)
  2495. gReserved3                 ds.l   1        ; offset: $36 (54)
  2496. clientData                 ds.l   1        ; offset: $3A (58)
  2497. aReserved                 ds.l   1        ; offset: $3E (62)        ;  --  
  2498. bReserved                 ds.l   1        ; offset: $42 (66)        ;  --  
  2499. cReserved                 ds.l   1        ; offset: $46 (70)        ;  --  
  2500. dReserved                 ds.l   1        ; offset: $4A (74)        ;  --  
  2501. eachDirectory             ds.l   1        ; offset: $4E (78)        ;  --> 
  2502. fReserved                 ds.l   1        ; offset: $52 (82)        ;  --  
  2503. gReserved                 ds.l   1        ; offset: $56 (86)        ;  --  
  2504. hReserved                 ds.l   1        ; offset: $5A (90)        ;  --  
  2505. iReserved                 ds.l   1        ; offset: $5E (94)        ;  --  
  2506. getBuffer                 ds.l   1        ; offset: $62 (98)        ;  --> 
  2507. getBufferSize             ds.l   1        ; offset: $66 (102)        ;  --> 
  2508. sizeof                     EQU *            ; size:   $6A (106)
  2509.                         ENDR
  2510.  
  2511. ; typedef struct DirEnumerateDirectoriesParsePB  DirEnumerateDirectoriesParsePB
  2512. ;
  2513. ;The Following five call are specific to ADAP Catalogs. Toolbox
  2514. ;remembers a list of catalogs across boots. If any catalog service
  2515. ;call is intended for a ADAP catalog, then it must be in the list.
  2516. ;In order for managing this list, A client (Probably DE will use these
  2517. ;calls.
  2518. ;DirAddADAPDirectoryPB: Add a new ADAP catalog to the list.
  2519. ;DirRemoveADAPDirectory: Remove a ADAP catalog from the list.
  2520. ;DirNetSearchADAPDirectoriesGet:   search an internet for adas catalogs.
  2521. ;DirNetSearchADAPDirectoriesParse: extract the results obtained NetSearchADAPDirectoriesGet.
  2522. ;DirFindADAPDirectoryByNetSearch: Find a specified catalog through net search.
  2523. ;
  2524. ;
  2525. ;NetSearchADAPDirectoriesGet:
  2526. ;This call can be used to make a network wide search for finding ADAP catalogs.
  2527. ;This call will be supported only by 'ADAP' and involve highly expensive
  2528. ;network operations, so the user is advised to use utmost discretion before
  2529. ;making this call. The results will be collected in the 'getbuffer' and can be
  2530. ;extracted using NetSearchADAPDirectoriesParse call. The directoryName,
  2531. ;the directoryDiscriminator, features and serverHint (AppleTalk address for
  2532. ;a PathFinder serving that catalog) are collected for each catalog found
  2533. ;on the network. If buffer is too small to hold all the catalogs found on
  2534. ;the network, a 'kOCEMoreData' error will be returned.
  2535. ;
  2536. DirNetSearchADAPDirectoriesGetPB RECORD    0
  2537. qLink                     ds.l   1        ; offset: $0 (0)
  2538. reserved1                 ds.l   1        ; offset: $4 (4)
  2539. reserved2                 ds.l   1        ; offset: $8 (8)
  2540. ioCompletion             ds.l   1        ; offset: $C (12)
  2541. ioResult                 ds.w   1        ; offset: $10 (16)
  2542. saveA5                     ds.l   1        ; offset: $12 (18)
  2543. reqCode                     ds.w   1        ; offset: $16 (22)
  2544. reserved                 ds.l   2        ; offset: $18 (24)
  2545. serverHint                 ds     AddrBlock ; offset: $20 (32)
  2546. dsRefNum                 ds.w   1        ; offset: $24 (36)
  2547. callID                     ds.l   1        ; offset: $26 (38)
  2548. identity                 ds.l   1        ; offset: $2A (42)
  2549. gReserved1                 ds.l   1        ; offset: $2E (46)
  2550. gReserved2                 ds.l   1        ; offset: $32 (50)
  2551. gReserved3                 ds.l   1        ; offset: $36 (54)
  2552. clientData                 ds.l   1        ; offset: $3A (58)
  2553. getBuffer                 ds.l   1        ; offset: $3E (62)        ;  --> 
  2554. getBufferSize             ds.l   1        ; offset: $42 (66)        ;  --> 
  2555. cReserved                 ds.l   1        ; offset: $46 (70)        ;  --  
  2556. sizeof                     EQU *            ; size:   $4A (74)
  2557.                         ENDR
  2558.  
  2559. ; typedef struct DirNetSearchADAPDirectoriesGetPB  DirNetSearchADAPDirectoriesGetPB
  2560. ; typedef ForEachADAPDirectoryUPP  ForEachADAPDirectory
  2561. ;
  2562. ;DirNetSearchADAPDirectoriesParse:
  2563. ;This call can be used to extract the results obtained in the 'getBuffer'.
  2564. ;The directoryName, directoryDiscriminator, features and
  2565. ;serverHint (AppleTalk address for a PathFinder serving that catalog) are
  2566. ;returned in each call-back. These values may be used to make an
  2567. ;AddADAPDirectory call.
  2568. ;
  2569. ;Returning TRUE from any call-back will terminate the NetSearchADAPDirectoriesParse request.
  2570. ;
  2571. ;For synchronous calls, the call-back routine actually runs as part of the same thread
  2572. ;of execution as the thread that made the DirNetSearchADAPDirectoriesParse call. That means that the
  2573. ;same low-memory globals, A5, stack, etc. are in effect during the call-back
  2574. ;that were in effect when the call was made.  Because of this, the call-back
  2575. ;routine has the same restrictions as the caller of DirNetSearchADAPDirectoriesParse:
  2576. ;if DirNetSearchADAPDirectoriesParse was not called from interrupt level, then the call-
  2577. ;back routine can allocate memory. For asynchronous calls, call-back routine is
  2578. ;like a ioCompletion except that A5 will be preserved for the application.
  2579. ;
  2580. DirNetSearchADAPDirectoriesParsePB RECORD    0
  2581. qLink                     ds.l   1        ; offset: $0 (0)
  2582. reserved1                 ds.l   1        ; offset: $4 (4)
  2583. reserved2                 ds.l   1        ; offset: $8 (8)
  2584. ioCompletion             ds.l   1        ; offset: $C (12)
  2585. ioResult                 ds.w   1        ; offset: $10 (16)
  2586. saveA5                     ds.l   1        ; offset: $12 (18)
  2587. reqCode                     ds.w   1        ; offset: $16 (22)
  2588. reserved                 ds.l   2        ; offset: $18 (24)
  2589. serverHint                 ds     AddrBlock ; offset: $20 (32)
  2590. dsRefNum                 ds.w   1        ; offset: $24 (36)
  2591. callID                     ds.l   1        ; offset: $26 (38)
  2592. identity                 ds.l   1        ; offset: $2A (42)
  2593. gReserved1                 ds.l   1        ; offset: $2E (46)
  2594. gReserved2                 ds.l   1        ; offset: $32 (50)
  2595. gReserved3                 ds.l   1        ; offset: $36 (54)
  2596. clientData                 ds.l   1        ; offset: $3A (58)
  2597. getBuffer                 ds.l   1        ; offset: $3E (62)        ;  --> 
  2598. getBufferSize             ds.l   1        ; offset: $42 (66)        ;  --> 
  2599. eachADAPDirectory         ds.l   1        ; offset: $46 (70)        ;  --> 
  2600. sizeof                     EQU *            ; size:   $4A (74)
  2601.                         ENDR
  2602.  
  2603. ; typedef struct DirNetSearchADAPDirectoriesParsePB  DirNetSearchADAPDirectoriesParsePB
  2604. ;
  2605. ;DirFindADAPDirectoryByNetSearch:
  2606. ;This call can be used to make a network wide search to find an ADAP catalog.
  2607. ;This call will be supported only by 'ADAP' and involves highly expensive
  2608. ;network operations, so the user is advised to use utmost discretion before
  2609. ;making this call. The catalog is specified using directoryName and discriminator.
  2610. ;If 'addToOCESetup' is true, the catalog will be automatically added to the setup
  2611. ;list and will be visible through the EnumerateDirectories call and also
  2612. ;also a creationID to the directoryRecord will be returned.
  2613. ;If this parameter is set to 'false', the catalog will be added to temporary list
  2614. ;and will be available for making other catalog service calls. The catalogs
  2615. ;which are not in the preference catalog list will not be visible through the
  2616. ;EnumerateDirectories call.
  2617. ;
  2618. DirFindADAPDirectoryByNetSearchPB RECORD    0
  2619. qLink                     ds.l   1        ; offset: $0 (0)
  2620. reserved1                 ds.l   1        ; offset: $4 (4)
  2621. reserved2                 ds.l   1        ; offset: $8 (8)
  2622. ioCompletion             ds.l   1        ; offset: $C (12)
  2623. ioResult                 ds.w   1        ; offset: $10 (16)
  2624. saveA5                     ds.l   1        ; offset: $12 (18)
  2625. reqCode                     ds.w   1        ; offset: $16 (22)
  2626. reserved                 ds.l   2        ; offset: $18 (24)
  2627. serverHint                 ds     AddrBlock ; offset: $20 (32)
  2628. dsRefNum                 ds.w   1        ; offset: $24 (36)
  2629. callID                     ds.l   1        ; offset: $26 (38)
  2630. identity                 ds.l   1        ; offset: $2A (42)
  2631. gReserved1                 ds.l   1        ; offset: $2E (46)
  2632. gReserved2                 ds.l   1        ; offset: $32 (50)
  2633. gReserved3                 ds.l   1        ; offset: $36 (54)
  2634. clientData                 ds.l   1        ; offset: $3A (58)
  2635. directoryName             ds.l   1        ; offset: $3E (62)        ;  --> catalog name 
  2636. discriminator             ds.l   2        ; offset: $42 (66)        ;  --> discriminate between dup catalog names 
  2637. addToOCESetup             ds.b   1        ; offset: $4A (74)        ;  --> add this catalog to OCE Setup List 
  2638. padByte                     ds.b   1        ; offset: $4B (75)
  2639. directoryRecordCID         ds.l   2        ; offset: $4C (76)        ; <--  creationID for the catalog record 
  2640. sizeof                     EQU *            ; size:   $54 (84)
  2641.                         ENDR
  2642.  
  2643. ; typedef struct DirFindADAPDirectoryByNetSearchPB  DirFindADAPDirectoryByNetSearchPB
  2644. ;
  2645. ;DirAddADAPDirectory:
  2646. ;The catalog specified by 'directoryName' and 'discriminator' will be
  2647. ;added to the list of catalogs maintained by the Toolbox. Once added,
  2648. ;the catalog is available across boots, until the catalog is removed
  2649. ;explicitly through a DirRemoveADAPDirectory call.
  2650. ;If 'serverHint' is not nil, the address provided will be used
  2651. ;to contact a PathFinder for the catalog specified.
  2652. ;If 'serverHint' is nil or does not point to a valid PathFinder server
  2653. ;for that catalog, this call will fail.
  2654. ;If 'addToOCESetup' is true, the catalog will be automatically added to the setup
  2655. ;catalog list and will be visible through EnumerateDirectories calls and
  2656. ;also a creationID to the directoryRecord will be returned.
  2657. ;If this parameter is set to 'false', catalog will be added to temprary list
  2658. ;and will be available for making other catalog service calls. The catalogs
  2659. ;which are not in the setup  list will not be visible through
  2660. ;EnumerateDirectories call.
  2661. ;
  2662. DirAddADAPDirectoryPB     RECORD    0
  2663. qLink                     ds.l   1        ; offset: $0 (0)
  2664. reserved1                 ds.l   1        ; offset: $4 (4)
  2665. reserved2                 ds.l   1        ; offset: $8 (8)
  2666. ioCompletion             ds.l   1        ; offset: $C (12)
  2667. ioResult                 ds.w   1        ; offset: $10 (16)
  2668. saveA5                     ds.l   1        ; offset: $12 (18)
  2669. reqCode                     ds.w   1        ; offset: $16 (22)
  2670. reserved                 ds.l   2        ; offset: $18 (24)
  2671. serverHint                 ds     AddrBlock ; offset: $20 (32)
  2672. dsRefNum                 ds.w   1        ; offset: $24 (36)
  2673. callID                     ds.l   1        ; offset: $26 (38)
  2674. identity                 ds.l   1        ; offset: $2A (42)
  2675. gReserved1                 ds.l   1        ; offset: $2E (46)
  2676. gReserved2                 ds.l   1        ; offset: $32 (50)
  2677. gReserved3                 ds.l   1        ; offset: $36 (54)
  2678. clientData                 ds.l   1        ; offset: $3A (58)
  2679. directoryName             ds.l   1        ; offset: $3E (62)        ;  --> catalog name 
  2680. discriminator             ds.l   2        ; offset: $42 (66)        ;  --> discriminate between dup catalog names 
  2681. addToOCESetup             ds.b   1        ; offset: $4A (74)        ;  --> add this catalog to OCE Setup 
  2682. padByte                     ds.b   1        ; offset: $4B (75)
  2683. directoryRecordCID         ds.l   2        ; offset: $4C (76)        ; <--  creationID for the catalog record 
  2684. sizeof                     EQU *            ; size:   $54 (84)
  2685.                         ENDR
  2686.  
  2687. ; typedef struct DirAddADAPDirectoryPB  DirAddADAPDirectoryPB
  2688. ;
  2689. ;GetDirectoryInfo:
  2690. ;DirGetDirectoryInfo will do:
  2691. ;
  2692. ;If a 'dsRefNum' is non-Zero, the catalog information for
  2693. ;    the corresponding  PAB will be  returned.
  2694. ; If 'dsRefNum' is zero and 'serverHint' is non-zero, If the
  2695. ; 'serverHint' points to a valid ADAP Catalog Server(Path Finder),
  2696. ; the catalog information (i.e. directoryName, discriminator, features)
  2697. ; for that catalog will be returned.
  2698. ;    If a  valid catalog name and discriminator are provided
  2699. ;    features (Set of capability flags) for that catalog will be returned.
  2700. ;
  2701. DirGetDirectoryInfoPB     RECORD    0
  2702. qLink                     ds.l   1        ; offset: $0 (0)
  2703. reserved1                 ds.l   1        ; offset: $4 (4)
  2704. reserved2                 ds.l   1        ; offset: $8 (8)
  2705. ioCompletion             ds.l   1        ; offset: $C (12)
  2706. ioResult                 ds.w   1        ; offset: $10 (16)
  2707. saveA5                     ds.l   1        ; offset: $12 (18)
  2708. reqCode                     ds.w   1        ; offset: $16 (22)
  2709. reserved                 ds.l   2        ; offset: $18 (24)
  2710. serverHint                 ds     AddrBlock ; offset: $20 (32)
  2711. dsRefNum                 ds.w   1        ; offset: $24 (36)
  2712. callID                     ds.l   1        ; offset: $26 (38)
  2713. identity                 ds.l   1        ; offset: $2A (42)
  2714. gReserved1                 ds.l   1        ; offset: $2E (46)
  2715. gReserved2                 ds.l   1        ; offset: $32 (50)
  2716. gReserved3                 ds.l   1        ; offset: $36 (54)
  2717. clientData                 ds.l   1        ; offset: $3A (58)
  2718. directoryName             ds.l   1        ; offset: $3E (62)        ;  --> catalog name 
  2719. discriminator             ds.l   2        ; offset: $42 (66)        ; <--> descriminate between dup catalog names 
  2720. features                 ds.l   1        ; offset: $4A (74)        ; <--  capability bit flags 
  2721. sizeof                     EQU *            ; size:   $4E (78)
  2722.                         ENDR
  2723.  
  2724. ; typedef struct DirGetDirectoryInfoPB  DirGetDirectoryInfoPB
  2725. ;
  2726. ; * Note on Access Controls:
  2727. ; * Access control is based on a list model.
  2728. ; * You can get access controls list which gives dsObject and accMask for each dsObject.
  2729. ; * GetAccessControl can be limited to currently supplied identity by setting forCurrentUserOnly.
  2730. ; * There are special DSObjects are defined in ADASTypes.h for each of the category
  2731. ; * supported in ADAS Catalogs. (kOwner, kFriends, kAuthenticatedToCluster, 
  2732. ; * kAuthenticatedToDirectory, kGuest) and DUGetActlDSSpec call can be used
  2733. ; * to obtain appropraiate DSSpec before making set calls to ADAS catalogs.
  2734. ; *
  2735. ;
  2736. ;    GetDNodeAccessControlGet:
  2737. ;    This call can be done to get back access control list for a DNode.
  2738. ;    pRLI -> RLI of the DNode whose access control list is sought
  2739. ;    curUserAccMask -> If this is 'true', Access controls for the user specified by
  2740. ;                      the identity parameter will be returned other wise entire list
  2741. ;                      will be returned.
  2742. ;    startingDsObj  -> If this is not nil, list should be started after this object.
  2743. ;    startingPointInclusive -> If staringDsObj is specified, include that in the returned
  2744. ;                              results.
  2745. ;                              
  2746. ;    The results will be collected in the 'getBuffer' supplied by the user.
  2747. ;    If buffer can not hold all the data returned 'daMoreData' error will be returned.
  2748. ;     
  2749. ;    If user receives 'noErr' or 'daMoreData', buffer will contain valid results. A user
  2750. ;    can extract the results in the 'getBuffer' by making 'DsGetDNodeAccessControlParse' call.
  2751. ;    
  2752. ;    Results returned for each DSObject will contain DSSpecPtr and three sets of access mask. 
  2753. ;
  2754. ;
  2755. DirGetDNodeAccessControlGetPB RECORD    0
  2756. qLink                     ds.l   1        ; offset: $0 (0)
  2757. reserved1                 ds.l   1        ; offset: $4 (4)
  2758. reserved2                 ds.l   1        ; offset: $8 (8)
  2759. ioCompletion             ds.l   1        ; offset: $C (12)
  2760. ioResult                 ds.w   1        ; offset: $10 (16)
  2761. saveA5                     ds.l   1        ; offset: $12 (18)
  2762. reqCode                     ds.w   1        ; offset: $16 (22)
  2763. reserved                 ds.l   2        ; offset: $18 (24)
  2764. serverHint                 ds     AddrBlock ; offset: $20 (32)
  2765. dsRefNum                 ds.w   1        ; offset: $24 (36)
  2766. callID                     ds.l   1        ; offset: $26 (38)
  2767. identity                 ds.l   1        ; offset: $2A (42)
  2768. gReserved1                 ds.l   1        ; offset: $2E (46)
  2769. gReserved2                 ds.l   1        ; offset: $32 (50)
  2770. gReserved3                 ds.l   1        ; offset: $36 (54)
  2771. clientData                 ds.l   1        ; offset: $3A (58)
  2772. pRLI                     ds.l   1        ; offset: $3E (62)        ;  -> RLI of the cluster whose access control list is sought  
  2773. bReserved                 ds.l   1        ; offset: $42 (66)        ;  -- unused 
  2774. cReserved                 ds.l   1        ; offset: $46 (70)        ;  -- unused 
  2775. dReserved                 ds.l   1        ; offset: $4A (74)        ;  -- unused 
  2776. eResreved                 ds.l   1        ; offset: $4E (78)        ; --> 
  2777. forCurrentUserOnly         ds.b   1        ; offset: $52 (82)        ; -->  
  2778. filler1                     ds.b   1        ; offset: $53 (83)
  2779. startingPoint             ds.l   1        ; offset: $54 (84)        ; --> starting Point 
  2780. includeStartingPoint     ds.b   1        ; offset: $58 (88)        ;  -> if true return the DsObject 
  2781. ;                                                                specified in starting point 
  2782. filler2                     ds.b   1        ; offset: $59 (89)
  2783. getBuffer                 ds.l   1        ; offset: $5A (90)        ;    -> 
  2784. getBufferSize             ds.l   1        ; offset: $5E (94)        ;  -> 
  2785. sizeof                     EQU *            ; size:   $62 (98)
  2786.                         ENDR
  2787.  
  2788. ; typedef struct DirGetDNodeAccessControlGetPB  DirGetDNodeAccessControlGetPB
  2789. ; The Access Control call-back function is defined as follows: 
  2790. ; typedef ForEachDNodeAccessControlUPP  ForEachDNodeAccessControl
  2791. ;
  2792. ;    GetDNodeAccessControlParse:
  2793. ;    After an GetDNodeAccessControlGet call has completed, 
  2794. ;    call GetDNodeAccessControlParse to parse through the buffer that
  2795. ;    that was filled in GetDNodeAccessControlGet.
  2796. ;    
  2797. ;    'eachObject' will be called each time to return to the client a
  2798. ;    DsObject and a set of three accMasks (three long words) for that object.
  2799. ;    Acceesmasks returned apply to the dsObject in the callback :
  2800. ;    1. Currently Active Access mask for the specified DNode.
  2801. ;    2. Default Access mask for any Record in the DNode
  2802. ;    3. Default Access mask for any Attribute in the DNode
  2803. ;    The clientData parameter that you pass in the parameter block will be passed
  2804. ;    to 'eachObject'.  You are free to put anything in clientData - it is intended
  2805. ;    to allow you some way to match the call-back to the original call (for
  2806. ;    example, you make more then one aysynchronous GetDNodeAccessControlGet calls and you want to
  2807. ;    associate returned results in some way).
  2808. ;    
  2809. ;    The client should return FALSE from 'eachObject' to continue
  2810. ;    processing of the GetDNodeAccessControlParse request.  Returning TRUE will
  2811. ;    terminate the GetDNodeAccessControlParse request.
  2812. ;
  2813. ;    For synchronous calls, the call-back routine actually runs as part of the same thread 
  2814. ;    of execution as the thread that made the GetDNodeAccessControlParse call.  That means that the
  2815. ;    same low-memory globals, A5, stack, etc. are in effect during the call-back
  2816. ;    that were in effect when the call was made.  Because of this, the call-back
  2817. ;    routine has the same restrictions as the caller of GetDNodeAccessControlParse:
  2818. ;    if GetDNodeAccessControlParse was not called from interrupt level, then the call-
  2819. ;    back routine can allocate memory. For asynchronous calls, call-back routine is
  2820. ;    like a ioCompletion except that A5 will be preserved for the application.
  2821. ;
  2822. ;
  2823. ;
  2824. DirGetDNodeAccessControlParsePB RECORD    0
  2825. qLink                     ds.l   1        ; offset: $0 (0)
  2826. reserved1                 ds.l   1        ; offset: $4 (4)
  2827. reserved2                 ds.l   1        ; offset: $8 (8)
  2828. ioCompletion             ds.l   1        ; offset: $C (12)
  2829. ioResult                 ds.w   1        ; offset: $10 (16)
  2830. saveA5                     ds.l   1        ; offset: $12 (18)
  2831. reqCode                     ds.w   1        ; offset: $16 (22)
  2832. reserved                 ds.l   2        ; offset: $18 (24)
  2833. serverHint                 ds     AddrBlock ; offset: $20 (32)
  2834. dsRefNum                 ds.w   1        ; offset: $24 (36)
  2835. callID                     ds.l   1        ; offset: $26 (38)
  2836. identity                 ds.l   1        ; offset: $2A (42)
  2837. gReserved1                 ds.l   1        ; offset: $2E (46)
  2838. gReserved2                 ds.l   1        ; offset: $32 (50)
  2839. gReserved3                 ds.l   1        ; offset: $36 (54)
  2840. clientData                 ds.l   1        ; offset: $3A (58)
  2841. pRLI                     ds.l   1        ; offset: $3E (62)        ;  -> RLI of the cluster  
  2842. bReserved                 ds.l   1        ; offset: $42 (66)        ;  -- unused 
  2843. cReserved                 ds.l   1        ; offset: $46 (70)        ;  -- unused 
  2844. dReserved                 ds.l   1        ; offset: $4A (74)        ;  -- unused 
  2845. eachObject                 ds.l   1        ; offset: $4E (78)        ; --> 
  2846. forCurrentUserOnly         ds.b   1        ; offset: $52 (82)        ; -->  
  2847. filler1                     ds.b   1        ; offset: $53 (83)
  2848. startingPoint             ds.l   1        ; offset: $54 (84)        ; --> starting Point 
  2849. includeStartingPoint     ds.b   1        ; offset: $58 (88)        ;  -> if true return the record 
  2850. ;                                                        specified in starting point 
  2851. filler2                     ds.b   1        ; offset: $59 (89)
  2852. getBuffer                 ds.l   1        ; offset: $5A (90)        ;    -> 
  2853. getBufferSize             ds.l   1        ; offset: $5E (94)        ;  -> 
  2854. sizeof                     EQU *            ; size:   $62 (98)
  2855.                         ENDR
  2856.  
  2857. ; typedef struct DirGetDNodeAccessControlParsePB  DirGetDNodeAccessControlParsePB
  2858. ;
  2859. ;    GetRecordAccessControlGet:
  2860. ;    This call can be done to get back access control list for a RecordID.
  2861. ;    aRecord -> RecordID to which access control list is sought
  2862. ;    curUserAccMask -> If this is 'true', Access controls for the user specified by
  2863. ;                      the identity parameter will be returned other wise entire list
  2864. ;                      will be returned.
  2865. ;    startingDsObj  -> If this is not nil, list should be started after this object.
  2866. ;    startingPointInclusive -> If staringDsObj is specified, include that in the returned
  2867. ;                              results.
  2868. ;                              
  2869. ;    The results will be collected in the 'getBuffer' supplied by the user.
  2870. ;    If buffer can not hold all the data returned 'daMoreData' error will be returned.
  2871. ;     
  2872. ;    If user receives 'noErr' or 'daMoreData', buffer will contain valid results. A user
  2873. ;    can extract the results in the 'getBuffer' by making 'DsGetDNodeAccessControlParse' call.
  2874. ;    
  2875. ;    Results returned for each DSObject will contain DSSpecPtr and accMask. 
  2876. ;
  2877. ;
  2878. DirGetRecordAccessControlGetPB RECORD    0
  2879. qLink                     ds.l   1        ; offset: $0 (0)
  2880. reserved1                 ds.l   1        ; offset: $4 (4)
  2881. reserved2                 ds.l   1        ; offset: $8 (8)
  2882. ioCompletion             ds.l   1        ; offset: $C (12)
  2883. ioResult                 ds.w   1        ; offset: $10 (16)
  2884. saveA5                     ds.l   1        ; offset: $12 (18)
  2885. reqCode                     ds.w   1        ; offset: $16 (22)
  2886. reserved                 ds.l   2        ; offset: $18 (24)
  2887. serverHint                 ds     AddrBlock ; offset: $20 (32)
  2888. dsRefNum                 ds.w   1        ; offset: $24 (36)
  2889. callID                     ds.l   1        ; offset: $26 (38)
  2890. identity                 ds.l   1        ; offset: $2A (42)
  2891. gReserved1                 ds.l   1        ; offset: $2E (46)
  2892. gReserved2                 ds.l   1        ; offset: $32 (50)
  2893. gReserved3                 ds.l   1        ; offset: $36 (54)
  2894. clientData                 ds.l   1        ; offset: $3A (58)
  2895. aRecord                     ds.l   1        ; offset: $3E (62)        ;  -> RecordID to which access control list is sought list is sought  
  2896. bReserved                 ds.l   1        ; offset: $42 (66)        ;  -- unused 
  2897. cReserved                 ds.l   1        ; offset: $46 (70)        ;  -- unused 
  2898. dReserved                 ds.l   1        ; offset: $4A (74)        ;  -- unused 
  2899. eResreved                 ds.l   1        ; offset: $4E (78)        ; --> 
  2900. forCurrentUserOnly         ds.b   1        ; offset: $52 (82)        ; -->  
  2901. filler1                     ds.b   1        ; offset: $53 (83)
  2902. startingPoint             ds.l   1        ; offset: $54 (84)        ; --> starting Point 
  2903. includeStartingPoint     ds.b   1        ; offset: $58 (88)        ;  -> if true return the DsObject 
  2904. ;                                                                specified in starting point 
  2905. filler2                     ds.b   1        ; offset: $59 (89)
  2906. getBuffer                 ds.l   1        ; offset: $5A (90)        ;    -> 
  2907. getBufferSize             ds.l   1        ; offset: $5E (94)        ;  -> 
  2908. sizeof                     EQU *            ; size:   $62 (98)
  2909.                         ENDR
  2910.  
  2911. ; typedef struct DirGetRecordAccessControlGetPB  DirGetRecordAccessControlGetPB
  2912. ; The Access Control call-back function is defined as follows: 
  2913. ; typedef ForEachRecordAccessControlUPP  ForEachRecordAccessControl
  2914. ;
  2915. ;    GetRecordAccessControlParse:
  2916. ;    After an GetRecordAccessControlGet call has completed, 
  2917. ;    call GetRecordAccessControlParse to parse through the buffer that
  2918. ;    that was filled in GetRecordAccessControlGet.
  2919. ;    
  2920. ;    'eachObject' will be called each time to return to the client a
  2921. ;    DsObject and a set of three accMasks (three long words) for that object.
  2922. ;    Acceesmasks returned apply to the dsObject in the callback :
  2923. ;    1. Active Access mask for the DNode Containing the Record.
  2924. ;    2. Active Access mask for the Record specified.
  2925. ;    3. Defualt Access mask for Attributes in the record.
  2926. ;    The clientData parameter that you pass in the parameter block will be passed
  2927. ;    to 'eachObject'.  You are free to put anything in clientData - it is intended
  2928. ;    to allow you some way to match the call-back to the original call (for
  2929. ;    example, you make more then one aysynchronous GetRecordAccessControlGet calls and you want to
  2930. ;    associate returned results in some way).
  2931. ;    
  2932. ;    The client should return FALSE from 'eachObject' to continue
  2933. ;    processing of the GetRecordAccessControlParse request.  Returning TRUE will
  2934. ;    terminate the GetRecordAccessControlParse request.
  2935. ;
  2936. ;    For synchronous calls, the call-back routine actually runs as part of the same thread 
  2937. ;    of execution as the thread that made the GetRecordAccessControlParse call.  That means that the
  2938. ;    same low-memory globals, A5, stack, etc. are in effect during the call-back
  2939. ;    that were in effect when the call was made.  Because of this, the call-back
  2940. ;    routine has the same restrictions as the caller of GetRecordAccessControlParse:
  2941. ;    if GetRecordAccessControlParse was not called from interrupt level, then the call-
  2942. ;    back routine can allocate memory. For asynchronous calls, call-back routine is
  2943. ;    like a ioCompletion except that A5 will be preserved for the application.
  2944. ;
  2945. ;
  2946. ;
  2947. DirGetRecordAccessControlParsePB RECORD    0
  2948. qLink                     ds.l   1        ; offset: $0 (0)
  2949. reserved1                 ds.l   1        ; offset: $4 (4)
  2950. reserved2                 ds.l   1        ; offset: $8 (8)
  2951. ioCompletion             ds.l   1        ; offset: $C (12)
  2952. ioResult                 ds.w   1        ; offset: $10 (16)
  2953. saveA5                     ds.l   1        ; offset: $12 (18)
  2954. reqCode                     ds.w   1        ; offset: $16 (22)
  2955. reserved                 ds.l   2        ; offset: $18 (24)
  2956. serverHint                 ds     AddrBlock ; offset: $20 (32)
  2957. dsRefNum                 ds.w   1        ; offset: $24 (36)
  2958. callID                     ds.l   1        ; offset: $26 (38)
  2959. identity                 ds.l   1        ; offset: $2A (42)
  2960. gReserved1                 ds.l   1        ; offset: $2E (46)
  2961. gReserved2                 ds.l   1        ; offset: $32 (50)
  2962. gReserved3                 ds.l   1        ; offset: $36 (54)
  2963. clientData                 ds.l   1        ; offset: $3A (58)
  2964. aRecord                     ds.l   1        ; offset: $3E (62)        ;  -> RecordID to which access control list is sought list is sought  
  2965. bReserved                 ds.l   1        ; offset: $42 (66)        ;  -- unused 
  2966. cReserved                 ds.l   1        ; offset: $46 (70)        ;  -- unused 
  2967. dReserved                 ds.l   1        ; offset: $4A (74)        ;  -- unused 
  2968. eachObject                 ds.l   1        ; offset: $4E (78)        ; --> 
  2969. forCurrentUserOnly         ds.b   1        ; offset: $52 (82)        ; -->  
  2970. filler1                     ds.b   1        ; offset: $53 (83)
  2971. startingPoint             ds.l   1        ; offset: $54 (84)        ; --> starting Point 
  2972. includeStartingPoint     ds.b   1        ; offset: $58 (88)        ;  -> if true return the record 
  2973. ;                                                        specified in starting point 
  2974. filler2                     ds.b   1        ; offset: $59 (89)
  2975. getBuffer                 ds.l   1        ; offset: $5A (90)        ;    -> 
  2976. getBufferSize             ds.l   1        ; offset: $5E (94)        ;  -> 
  2977. sizeof                     EQU *            ; size:   $62 (98)
  2978.                         ENDR
  2979.  
  2980. ; typedef struct DirGetRecordAccessControlParsePB  DirGetRecordAccessControlParsePB
  2981. ;
  2982. ;    GetAttributeAccessControlGet:
  2983. ;    This call can be done to get back access control list for a attributeType with in a RecordID.
  2984. ;    aRecord -> RecordID to which access control list is sought
  2985. ;    aType    -> Attribute Type to which access controls are sought
  2986. ;    curUserAccMask -> If this is 'true', Access controls for the user specified by
  2987. ;                      the identity parameter will be returned other wise entire list
  2988. ;                      will be returned.
  2989. ;    startingDsObj  -> If this is not nil, list should be started after this object.
  2990. ;    startingPointInclusive -> If staringDsObj is specified, include that in the returned
  2991. ;                              results.
  2992. ;                              
  2993. ;    The results will be collected in the 'getBuffer' supplied by the user.
  2994. ;    If buffer can not hold all the data returned 'daMoreData' error will be returned.
  2995. ;     
  2996. ;    If user receives 'noErr' or 'daMoreData', buffer will contain valid results. A user
  2997. ;    can extract the results in the 'getBuffer' by making 'DsGetDNodeAccessControlParse' call.
  2998. ;    
  2999. ;    Results returned for each DSObject will contain DSSpecPtr and accMask. 
  3000. ;
  3001. ;
  3002. DirGetAttributeAccessControlGetPB RECORD    0
  3003. qLink                     ds.l   1        ; offset: $0 (0)
  3004. reserved1                 ds.l   1        ; offset: $4 (4)
  3005. reserved2                 ds.l   1        ; offset: $8 (8)
  3006. ioCompletion             ds.l   1        ; offset: $C (12)
  3007. ioResult                 ds.w   1        ; offset: $10 (16)
  3008. saveA5                     ds.l   1        ; offset: $12 (18)
  3009. reqCode                     ds.w   1        ; offset: $16 (22)
  3010. reserved                 ds.l   2        ; offset: $18 (24)
  3011. serverHint                 ds     AddrBlock ; offset: $20 (32)
  3012. dsRefNum                 ds.w   1        ; offset: $24 (36)
  3013. callID                     ds.l   1        ; offset: $26 (38)
  3014. identity                 ds.l   1        ; offset: $2A (42)
  3015. gReserved1                 ds.l   1        ; offset: $2E (46)
  3016. gReserved2                 ds.l   1        ; offset: $32 (50)
  3017. gReserved3                 ds.l   1        ; offset: $36 (54)
  3018. clientData                 ds.l   1        ; offset: $3A (58)
  3019. aRecord                     ds.l   1        ; offset: $3E (62)        ;  -> RecordID to which access control list is sought list is sought  
  3020. aType                     ds.l   1        ; offset: $42 (66)        ;  -> Attribute Type to which access controls are sought          
  3021. cReserved                 ds.l   1        ; offset: $46 (70)        ;  -- unused 
  3022. dReserved                 ds.l   1        ; offset: $4A (74)        ;  -- unused 
  3023. eResreved                 ds.l   1        ; offset: $4E (78)        ; --> 
  3024. forCurrentUserOnly         ds.b   1        ; offset: $52 (82)        ; -->  
  3025. filler1                     ds.b   1        ; offset: $53 (83)
  3026. startingPoint             ds.l   1        ; offset: $54 (84)        ; --> starting Point 
  3027. includeStartingPoint     ds.b   1        ; offset: $58 (88)        ;  -> if true return the DsObject 
  3028. ;                                                                specified in starting point 
  3029. filler2                     ds.b   1        ; offset: $59 (89)
  3030. getBuffer                 ds.l   1        ; offset: $5A (90)        ;    -> 
  3031. getBufferSize             ds.l   1        ; offset: $5E (94)        ;  -> 
  3032. sizeof                     EQU *            ; size:   $62 (98)
  3033.                         ENDR
  3034.  
  3035. ; typedef struct DirGetAttributeAccessControlGetPB  DirGetAttributeAccessControlGetPB
  3036. ; The Access Control call-back function is defined as follows: 
  3037. ; typedef ForEachAttributeAccessControlUPP  ForEachAttributeAccessControl
  3038. ;
  3039. ;    GetAttributeAccessControlParse:
  3040. ;    After an GetAttributeAccessControlGet call has completed, 
  3041. ;    call GetAttributeAccessControlParse to parse through the buffer that
  3042. ;    that was filled in GetAttributeAccessControlGet.
  3043. ;    
  3044. ;    'eachObject' will be called each time to return to the client a
  3045. ;    DsObject and a set of three accMasks (three long words) for that object.
  3046. ;    Acceesmasks returned apply to the dsObject in the callback :
  3047. ;    1. Active Access mask for the DNode Containing the Attribute.
  3048. ;    2. Active Access mask for the Record in the Containing the Attribute.
  3049. ;    3. Active Access mask for the specified Attribute.
  3050. ;    The clientData parameter that you pass in the parameter block will be passed
  3051. ;    to 'eachObject'.  You are free to put anything in clientData - it is intended
  3052. ;    to allow you some way to match the call-back to the original call (for
  3053. ;    example, you make more then one aysynchronous GetAttributeAccessControlGet calls and you want to
  3054. ;    associate returned results in some way).
  3055. ;    
  3056. ;    The client should return FALSE from 'eachObject' to continue
  3057. ;    processing of the GetAttributeAccessControlParse request.  Returning TRUE will
  3058. ;    terminate the GetAttributeAccessControlParse request.
  3059. ;
  3060. ;    For synchronous calls, the call-back routine actually runs as part of the same thread 
  3061. ;    of execution as the thread that made the GetAttributeAccessControlParse call.  That means that the
  3062. ;    same low-memory globals, A5, stack, etc. are in effect during the call-back
  3063. ;    that were in effect when the call was made.  Because of this, the call-back
  3064. ;    routine has the same restrictions as the caller of GetAttributeAccessControlParse:
  3065. ;    if GetAttributeAccessControlParse was not called from interrupt level, then the call-
  3066. ;    back routine can allocate memory. For asynchronous calls, call-back routine is
  3067. ;    like a ioCompletion except that A5 will be preserved for the application.
  3068. ;
  3069. ;
  3070. ;
  3071. DirGetAttributeAccessControlParsePB RECORD    0
  3072. qLink                     ds.l   1        ; offset: $0 (0)
  3073. reserved1                 ds.l   1        ; offset: $4 (4)
  3074. reserved2                 ds.l   1        ; offset: $8 (8)
  3075. ioCompletion             ds.l   1        ; offset: $C (12)
  3076. ioResult                 ds.w   1        ; offset: $10 (16)
  3077. saveA5                     ds.l   1        ; offset: $12 (18)
  3078. reqCode                     ds.w   1        ; offset: $16 (22)
  3079. reserved                 ds.l   2        ; offset: $18 (24)
  3080. serverHint                 ds     AddrBlock ; offset: $20 (32)
  3081. dsRefNum                 ds.w   1        ; offset: $24 (36)
  3082. callID                     ds.l   1        ; offset: $26 (38)
  3083. identity                 ds.l   1        ; offset: $2A (42)
  3084. gReserved1                 ds.l   1        ; offset: $2E (46)
  3085. gReserved2                 ds.l   1        ; offset: $32 (50)
  3086. gReserved3                 ds.l   1        ; offset: $36 (54)
  3087. clientData                 ds.l   1        ; offset: $3A (58)
  3088. aRecord                     ds.l   1        ; offset: $3E (62)        ;  -> RecordID to which access control list is sought list is sought  
  3089. aType                     ds.l   1        ; offset: $42 (66)        ;  -> Attribute Type to which access controls are sought          
  3090. cReserved                 ds.l   1        ; offset: $46 (70)        ;  -- unused 
  3091. dReserved                 ds.l   1        ; offset: $4A (74)        ;  -- unused 
  3092. eachObject                 ds.l   1        ; offset: $4E (78)        ; --> 
  3093. forCurrentUserOnly         ds.b   1        ; offset: $52 (82)        ; -->  
  3094. filler1                     ds.b   1        ; offset: $53 (83)
  3095. startingPoint             ds.l   1        ; offset: $54 (84)        ; --> starting Point 
  3096. includeStartingPoint     ds.b   1        ; offset: $58 (88)        ;  -> if true return the record 
  3097. ;                                                        specified in starting point 
  3098. filler2                     ds.b   1        ; offset: $59 (89)
  3099. getBuffer                 ds.l   1        ; offset: $5A (90)        ;    -> 
  3100. getBufferSize             ds.l   1        ; offset: $5E (94)        ;  -> 
  3101. sizeof                     EQU *            ; size:   $62 (98)
  3102.                         ENDR
  3103.  
  3104. ; typedef struct DirGetAttributeAccessControlParsePB  DirGetAttributeAccessControlParsePB
  3105. ;
  3106. ;MapPathNameToDNodeNumber:
  3107. ;This call maps a given PathName within a catalog to its DNodeNumber.
  3108. ;
  3109. DirMapPathNameToDNodeNumberPB RECORD    0
  3110. qLink                     ds.l   1        ; offset: $0 (0)
  3111. reserved1                 ds.l   1        ; offset: $4 (4)
  3112. reserved2                 ds.l   1        ; offset: $8 (8)
  3113. ioCompletion             ds.l   1        ; offset: $C (12)
  3114. ioResult                 ds.w   1        ; offset: $10 (16)
  3115. saveA5                     ds.l   1        ; offset: $12 (18)
  3116. reqCode                     ds.w   1        ; offset: $16 (22)
  3117. reserved                 ds.l   2        ; offset: $18 (24)
  3118. serverHint                 ds     AddrBlock ; offset: $20 (32)
  3119. dsRefNum                 ds.w   1        ; offset: $24 (36)
  3120. callID                     ds.l   1        ; offset: $26 (38)
  3121. identity                 ds.l   1        ; offset: $2A (42)
  3122. gReserved1                 ds.l   1        ; offset: $2E (46)
  3123. gReserved2                 ds.l   1        ; offset: $32 (50)
  3124. gReserved3                 ds.l   1        ; offset: $36 (54)
  3125. clientData                 ds.l   1        ; offset: $3A (58)
  3126. directoryName             ds.l   1        ; offset: $3E (62)        ;  --> catalog name 
  3127. discriminator             ds.l   2        ; offset: $42 (66)        ;  --> discriminator 
  3128. dNodeNumber                 ds.l   1        ; offset: $4A (74)        ; <--  dNodenumber to the path 
  3129. path                     ds.l   1        ; offset: $4E (78)        ;  --> Path Name to be mapped 
  3130. sizeof                     EQU *            ; size:   $52 (82)
  3131.                         ENDR
  3132.  
  3133. ; typedef struct DirMapPathNameToDNodeNumberPB  DirMapPathNameToDNodeNumberPB
  3134. ;
  3135. ;PathName in the path field will be mapped to the cooresponding dNodeNumber and
  3136. ;returned in the DNodeNumber field. directoryName and descriminator Fields are
  3137. ;ignored. DSRefNum is used to identify the catalog.
  3138. ;
  3139. ;
  3140. ;MapDNodeNumberToPathName:
  3141. ;This call will map a given DNodeNumber with in a catalog to the
  3142. ;corresponding PathName.
  3143. ;
  3144. DirMapDNodeNumberToPathNamePB RECORD    0
  3145. qLink                     ds.l   1        ; offset: $0 (0)
  3146. reserved1                 ds.l   1        ; offset: $4 (4)
  3147. reserved2                 ds.l   1        ; offset: $8 (8)
  3148. ioCompletion             ds.l   1        ; offset: $C (12)
  3149. ioResult                 ds.w   1        ; offset: $10 (16)
  3150. saveA5                     ds.l   1        ; offset: $12 (18)
  3151. reqCode                     ds.w   1        ; offset: $16 (22)
  3152. reserved                 ds.l   2        ; offset: $18 (24)
  3153. serverHint                 ds     AddrBlock ; offset: $20 (32)
  3154. dsRefNum                 ds.w   1        ; offset: $24 (36)
  3155. callID                     ds.l   1        ; offset: $26 (38)
  3156. identity                 ds.l   1        ; offset: $2A (42)
  3157. gReserved1                 ds.l   1        ; offset: $2E (46)
  3158. gReserved2                 ds.l   1        ; offset: $32 (50)
  3159. gReserved3                 ds.l   1        ; offset: $36 (54)
  3160. clientData                 ds.l   1        ; offset: $3A (58)
  3161. directoryName             ds.l   1        ; offset: $3E (62)        ;  --> catalog name 
  3162. discriminator             ds.l   2        ; offset: $42 (66)        ;  --> discriminator 
  3163. dNodeNumber                 ds.l   1        ; offset: $4A (74)        ;  --> dNodenumber to be mapped 
  3164. path                     ds.l   1        ; offset: $4E (78)        ; <--  Packed Path Name returned 
  3165. lengthOfPathName         ds.w   1        ; offset: $52 (82)        ;  --> length of packed pathName structure
  3166. sizeof                     EQU *            ; size:   $54 (84)
  3167.                         ENDR
  3168.  
  3169. ; typedef struct DirMapDNodeNumberToPathNamePB  DirMapDNodeNumberToPathNamePB
  3170. ;
  3171. ;dNodeNumber in the DNodeNumber field will be mapped to the cooresponding
  3172. ;pathName and returned in the PackedPathName field.
  3173. ;lengthOfPathName is to be set the length of pathName structure.
  3174. ;If length of PackedPathName is larger then the lengthOfPathName, kOCEMoreData
  3175. ;OSErr will be returned.
  3176. ;
  3177. ;
  3178. ;GetLocalNetworkSpec:
  3179. ;This call will return the Local NetworkSpec. Client should supply
  3180. ;an RString big enough to hold the NetworkSpec.
  3181. ;
  3182. DirGetLocalNetworkSpecPB RECORD    0
  3183. qLink                     ds.l   1        ; offset: $0 (0)
  3184. reserved1                 ds.l   1        ; offset: $4 (4)
  3185. reserved2                 ds.l   1        ; offset: $8 (8)
  3186. ioCompletion             ds.l   1        ; offset: $C (12)
  3187. ioResult                 ds.w   1        ; offset: $10 (16)
  3188. saveA5                     ds.l   1        ; offset: $12 (18)
  3189. reqCode                     ds.w   1        ; offset: $16 (22)
  3190. reserved                 ds.l   2        ; offset: $18 (24)
  3191. serverHint                 ds     AddrBlock ; offset: $20 (32)
  3192. dsRefNum                 ds.w   1        ; offset: $24 (36)
  3193. callID                     ds.l   1        ; offset: $26 (38)
  3194. identity                 ds.l   1        ; offset: $2A (42)
  3195. gReserved1                 ds.l   1        ; offset: $2E (46)
  3196. gReserved2                 ds.l   1        ; offset: $32 (50)
  3197. gReserved3                 ds.l   1        ; offset: $36 (54)
  3198. clientData                 ds.l   1        ; offset: $3A (58)
  3199. directoryName             ds.l   1        ; offset: $3E (62)        ;  --> catalog name 
  3200. discriminator             ds.l   2        ; offset: $42 (66)        ;  --> discriminator 
  3201. networkSpec                 ds.l   1        ; offset: $4A (74)        ; <--  NetworkSpec 
  3202. sizeof                     EQU *            ; size:   $4E (78)
  3203.                         ENDR
  3204.  
  3205. ; typedef struct DirGetLocalNetworkSpecPB  DirGetLocalNetworkSpecPB
  3206. ;
  3207. ;PathName in the path field must be set to nil. internetName should be large
  3208. ;enough to hold the internetName. InterNetname returned indicates path finder's
  3209. ;local internet (configured by administrator).
  3210. ;
  3211. ;
  3212. ;GetDNodeInfo:
  3213. ;This call will return the information (internetName and descriptor)
  3214. ;for the given RLI of a DNode.
  3215. ;
  3216. DirGetDNodeInfoPB         RECORD    0
  3217. qLink                     ds.l   1        ; offset: $0 (0)
  3218. reserved1                 ds.l   1        ; offset: $4 (4)
  3219. reserved2                 ds.l   1        ; offset: $8 (8)
  3220. ioCompletion             ds.l   1        ; offset: $C (12)
  3221. ioResult                 ds.w   1        ; offset: $10 (16)
  3222. saveA5                     ds.l   1        ; offset: $12 (18)
  3223. reqCode                     ds.w   1        ; offset: $16 (22)
  3224. reserved                 ds.l   2        ; offset: $18 (24)
  3225. serverHint                 ds     AddrBlock ; offset: $20 (32)
  3226. dsRefNum                 ds.w   1        ; offset: $24 (36)
  3227. callID                     ds.l   1        ; offset: $26 (38)
  3228. identity                 ds.l   1        ; offset: $2A (42)
  3229. gReserved1                 ds.l   1        ; offset: $2E (46)
  3230. gReserved2                 ds.l   1        ; offset: $32 (50)
  3231. gReserved3                 ds.l   1        ; offset: $36 (54)
  3232. clientData                 ds.l   1        ; offset: $3A (58)
  3233. pRLI                     ds.l   1        ; offset: $3E (62)        ;  --> packed RLI whose info is requested 
  3234. descriptor                 ds.l   1        ; offset: $42 (66)        ; <--  dNode descriptor 
  3235. networkSpec                 ds.l   1        ; offset: $46 (70)        ; <--  cluster's networkSpec if kIsCluster 
  3236. sizeof                     EQU *            ; size:   $4A (74)
  3237.                         ENDR
  3238.  
  3239. ; typedef struct DirGetDNodeInfoPB  DirGetDNodeInfoPB
  3240. ;
  3241. ;If DnodeNumber is set to a non zero value, path should be set to nil.
  3242. ;if DnodeNumber is set to zero, pathName should point to a packed path name.
  3243. ;internetName should be large enough to hold
  3244. ;the internetName. (If the internetName is same as the one got by
  3245. ;GetLocalInternetName call, it indicates cluster is reachable  without
  3246. ;forwarders, --> Tell me if I am wrong)
  3247. ;
  3248. ;
  3249. ;DirCreatePersonalDirectory:
  3250. ;A new  personal catalog can be created by specifying an FSSpec for
  3251. ;the file. If a file already exists dupFNErr will be returned. This call is
  3252. ;supported 'synchronous' mode only.
  3253. ;
  3254. DirCreatePersonalDirectoryPB RECORD    0
  3255. qLink                     ds.l   1        ; offset: $0 (0)
  3256. reserved1                 ds.l   1        ; offset: $4 (4)
  3257. reserved2                 ds.l   1        ; offset: $8 (8)
  3258. ioCompletion             ds.l   1        ; offset: $C (12)
  3259. ioResult                 ds.w   1        ; offset: $10 (16)
  3260. saveA5                     ds.l   1        ; offset: $12 (18)
  3261. reqCode                     ds.w   1        ; offset: $16 (22)
  3262. reserved                 ds.l   2        ; offset: $18 (24)
  3263. serverHint                 ds     AddrBlock ; offset: $20 (32)
  3264. dsRefNum                 ds.w   1        ; offset: $24 (36)
  3265. callID                     ds.l   1        ; offset: $26 (38)
  3266. identity                 ds.l   1        ; offset: $2A (42)
  3267. gReserved1                 ds.l   1        ; offset: $2E (46)
  3268. gReserved2                 ds.l   1        ; offset: $32 (50)
  3269. gReserved3                 ds.l   1        ; offset: $36 (54)
  3270. clientData                 ds.l   1        ; offset: $3A (58)
  3271. fsSpec                     ds.l   1        ; offset: $3E (62)        ;  --> FSSpec for the Personal Catalog 
  3272. fdType                     ds.l   1        ; offset: $42 (66)        ;  --> file type for the Personal Catalog 
  3273. fdCreator                 ds.l   1        ; offset: $46 (70)        ;  --> file creator for the Personal Catalog 
  3274. sizeof                     EQU *            ; size:   $4A (74)
  3275.                         ENDR
  3276.  
  3277. ; typedef struct DirCreatePersonalDirectoryPB  DirCreatePersonalDirectoryPB
  3278. ;
  3279. ;DirOpenPersonalDirectory:
  3280. ;An existing personal catalog can be opened using this call.
  3281. ;User can specify the personal catalog by FSSpec for the AddressBook file.
  3282. ;'accessRequested' field specifies open permissions. 'fsRdPerm'  & 'fsRdWrPerm'
  3283. ;are the only accepted open modes for the address book.
  3284. ;When the call completes successfully, a dsRefNum will be returned. The 'dsRefNum'
  3285. ;field is in the DSParamBlockHeader. In addittion 'accessGranted' indicates
  3286. ;actual permission with personal catalog is opened and 'features' indicate the capabilty flags
  3287. ;associated with the personal catalog.
  3288. ;This call is supported 'synchronous' mode only.
  3289. ;
  3290. DirOpenPersonalDirectoryPB RECORD    0
  3291. qLink                     ds.l   1        ; offset: $0 (0)
  3292. reserved1                 ds.l   1        ; offset: $4 (4)
  3293. reserved2                 ds.l   1        ; offset: $8 (8)
  3294. ioCompletion             ds.l   1        ; offset: $C (12)
  3295. ioResult                 ds.w   1        ; offset: $10 (16)
  3296. saveA5                     ds.l   1        ; offset: $12 (18)
  3297. reqCode                     ds.w   1        ; offset: $16 (22)
  3298. reserved                 ds.l   2        ; offset: $18 (24)
  3299. serverHint                 ds     AddrBlock ; offset: $20 (32)
  3300. dsRefNum                 ds.w   1        ; offset: $24 (36)
  3301. callID                     ds.l   1        ; offset: $26 (38)
  3302. identity                 ds.l   1        ; offset: $2A (42)
  3303. gReserved1                 ds.l   1        ; offset: $2E (46)
  3304. gReserved2                 ds.l   1        ; offset: $32 (50)
  3305. gReserved3                 ds.l   1        ; offset: $36 (54)
  3306. clientData                 ds.l   1        ; offset: $3A (58)
  3307. fsSpec                     ds.l   1        ; offset: $3E (62)        ;  --> Open an existing Personal Catalog 
  3308. accessRequested             ds.b   1        ; offset: $42 (66)        ;  --> Open: permissions Requested(byte)
  3309. accessGranted             ds.b   1        ; offset: $43 (67)        ;  <-- Open: permissions (byte) (Granted)
  3310. features                 ds.l   1        ; offset: $44 (68)        ; <--  features for Personal Catalog 
  3311. sizeof                     EQU *            ; size:   $48 (72)
  3312.                         ENDR
  3313.  
  3314. ; typedef struct DirOpenPersonalDirectoryPB  DirOpenPersonalDirectoryPB
  3315. ;
  3316. ;DirClosePersonalDirectory: This call lets a client close AddressBook opened by DirOpenPersonalDirectory.
  3317. ;The Personal Catalog specified by the 'dsRefNum' will be closed.
  3318. ;This call is supported 'synchronous' mode only.
  3319. ;
  3320. DirClosePersonalDirectoryPB RECORD    0
  3321. qLink                     ds.l   1        ; offset: $0 (0)
  3322. reserved1                 ds.l   1        ; offset: $4 (4)
  3323. reserved2                 ds.l   1        ; offset: $8 (8)
  3324. ioCompletion             ds.l   1        ; offset: $C (12)
  3325. ioResult                 ds.w   1        ; offset: $10 (16)
  3326. saveA5                     ds.l   1        ; offset: $12 (18)
  3327. reqCode                     ds.w   1        ; offset: $16 (22)
  3328. reserved                 ds.l   2        ; offset: $18 (24)
  3329. serverHint                 ds     AddrBlock ; offset: $20 (32)
  3330. dsRefNum                 ds.w   1        ; offset: $24 (36)
  3331. callID                     ds.l   1        ; offset: $26 (38)
  3332. identity                 ds.l   1        ; offset: $2A (42)
  3333. gReserved1                 ds.l   1        ; offset: $2E (46)
  3334. gReserved2                 ds.l   1        ; offset: $32 (50)
  3335. gReserved3                 ds.l   1        ; offset: $36 (54)
  3336. clientData                 ds.l   1        ; offset: $3A (58)
  3337. sizeof                     EQU *            ; size:   $3E (62)
  3338.                         ENDR
  3339.  
  3340. ; typedef struct DirClosePersonalDirectoryPB  DirClosePersonalDirectoryPB
  3341. ;
  3342. ;DirMakePersonalDirectoryRLI: With this call a client can make an RLI
  3343. ;for a Personal Catalog opened by DirOpenPersonalDirectory Call.
  3344. ;A packed RLI is created for the Personal Catalog specified by the 'dsRefNum'.
  3345. ;If a client has a need to make the AddressBook reference to persistent
  3346. ;acrross boots it should make use of this call. In the current implementaion
  3347. ;PackedRLI has an embeeded System7.0 'alias'. If in later time
  3348. ;If client has a need to make reference to the AddressBook, it must use
  3349. ;ADAPLibrary call 'DUExtractAlias' and resole the 'alias' to 'FSSpec' and
  3350. ;make DirOpenPersonalDirectory call to get a 'dsRefNum'.
  3351. ;  'fromFSSpec'            FSPecPtr from which relative alias to be created. If nil,
  3352. ;                        absolute alias is created.
  3353. ; 'pRLIBufferSize' indicates the size of buffer pointed by 'pRLI'
  3354. ; 'pRLISize'    indicates the actual length of 'pRLI'. If the call
  3355. ;                        fails with 'kOCEMoreData' error a client can reissue
  3356. ;                    this call with a larger buffer of this length.
  3357. ;  'pRLI' is pointer to the buffer in which 'PackedRLI' is
  3358. ;  returned.
  3359. ;This call is supported in 'synchronous' mode only.
  3360. ;
  3361. DirMakePersonalDirectoryRLIPB RECORD    0
  3362. qLink                     ds.l   1        ; offset: $0 (0)
  3363. reserved1                 ds.l   1        ; offset: $4 (4)
  3364. reserved2                 ds.l   1        ; offset: $8 (8)
  3365. ioCompletion             ds.l   1        ; offset: $C (12)
  3366. ioResult                 ds.w   1        ; offset: $10 (16)
  3367. saveA5                     ds.l   1        ; offset: $12 (18)
  3368. reqCode                     ds.w   1        ; offset: $16 (22)
  3369. reserved                 ds.l   2        ; offset: $18 (24)
  3370. serverHint                 ds     AddrBlock ; offset: $20 (32)
  3371. dsRefNum                 ds.w   1        ; offset: $24 (36)
  3372. callID                     ds.l   1        ; offset: $26 (38)
  3373. identity                 ds.l   1        ; offset: $2A (42)
  3374. gReserved1                 ds.l   1        ; offset: $2E (46)
  3375. gReserved2                 ds.l   1        ; offset: $32 (50)
  3376. gReserved3                 ds.l   1        ; offset: $36 (54)
  3377. clientData                 ds.l   1        ; offset: $3A (58)
  3378. fromFSSpec                 ds.l   1        ; offset: $3E (62)        ;  --> FSSpec for creating relative alia 
  3379. pRLIBufferSize             ds.w   1        ; offset: $42 (66)        ;  --> Length of 'pRLI' buffer 
  3380. pRLISize                 ds.w   1        ; offset: $44 (68)        ; <--  Length of actual 'pRLI' 
  3381. pRLI                     ds.l   1        ; offset: $46 (70)        ; <--  pRLI for the specified AddressBook 
  3382. sizeof                     EQU *            ; size:   $4A (74)
  3383.                         ENDR
  3384.  
  3385. ; typedef struct DirMakePersonalDirectoryRLIPB  DirMakePersonalDirectoryRLIPB
  3386. ;****************************************************************************
  3387. ;The calls described below apply only for CSAM Drivers:
  3388. ;
  3389. ;The following three calls provide capability to Install/Remove a CSAM at RunTime.
  3390. ;    DirAddDSAM
  3391. ;    DirRemoveDSAM
  3392. ;    DirInstantiateDSAM
  3393. ;
  3394. ;The following two calls provide capability to Install/Remove a CSAM Catalog at RunTime.
  3395. ;    DirAddDSAMDirectory
  3396. ;    DirRemoveDirectory
  3397. ;
  3398. ;DirGetDirectoryIcon call is used by clients to get any special icon associated
  3399. ;with a CSAM catalog.
  3400. ;
  3401. ;****************************************************************************
  3402. ;
  3403. ;DirAddDSAM: This call can be used to inorm the availability of a CSAM file
  3404. ;after discovering the CSAM file.
  3405. ;    dsamName -> is generic CSAM name e.g. Untitled X.500 directory
  3406. ;    dsamSignature -> could be generic CSAM kind e.g. 'X500'.
  3407. ;    fsSpec -> is the FileSpec for the file containing CSAM resources.
  3408. ;If the call is successfull 'DSAMRecordCID' will be returned. If the
  3409. ;call returns 'daDSAMRecordCIDExists', record was already there and
  3410. ;'dsamRecordCID' will be returned.
  3411. ;This call can be done only in synchronous mode.
  3412. ;
  3413. DirAddDSAMPB             RECORD    0
  3414. qLink                     ds.l   1        ; offset: $0 (0)
  3415. reserved1                 ds.l   1        ; offset: $4 (4)
  3416. reserved2                 ds.l   1        ; offset: $8 (8)
  3417. ioCompletion             ds.l   1        ; offset: $C (12)
  3418. ioResult                 ds.w   1        ; offset: $10 (16)
  3419. saveA5                     ds.l   1        ; offset: $12 (18)
  3420. reqCode                     ds.w   1        ; offset: $16 (22)
  3421. reserved                 ds.l   2        ; offset: $18 (24)
  3422. serverHint                 ds     AddrBlock ; offset: $20 (32)
  3423. dsRefNum                 ds.w   1        ; offset: $24 (36)
  3424. callID                     ds.l   1        ; offset: $26 (38)
  3425. identity                 ds.l   1        ; offset: $2A (42)
  3426. gReserved1                 ds.l   1        ; offset: $2E (46)
  3427. gReserved2                 ds.l   1        ; offset: $32 (50)
  3428. gReserved3                 ds.l   1        ; offset: $36 (54)
  3429. clientData                 ds.l   1        ; offset: $3A (58)
  3430. dsamRecordCID             ds.l   2        ; offset: $3E (62)        ; <--  CreationID for the CSAM record 
  3431. dsamName                 ds.l   1        ; offset: $46 (70)        ;  --> CSAM name 
  3432. dsamKind                 ds.l   1        ; offset: $4A (74)        ;  --> CSAM kind 
  3433. fsSpec                     ds.l   1        ; offset: $4E (78)        ;  --> FSSpec for the file containing CSAM 
  3434. sizeof                     EQU *            ; size:   $52 (82)
  3435.                         ENDR
  3436.  
  3437. ; typedef struct DirAddDSAMPB  DirAddDSAMPB
  3438. ;
  3439. ;DirInstantiateDSAM: This call should be used by the CSAM driver in response
  3440. ;Driver Open call to indicate the toolbox about the availability of the CSAM.
  3441. ;    dsamName -> is generic CSAM name e.g. Untitled X.500 directory
  3442. ;    dsamKind -> could be generic CSAM kind e.g. 'X500'.
  3443. ;    dsamData -> pointer to private DSAMData. This will be paased back to the CSAM
  3444. ;    when the CSAM functions (DSAMDirProc,DSAMDirParseProc, DSAMAuthProc) are called.
  3445. ;    CSAM should already be setup using DirAddDSAM call.
  3446. ;    DSAMDirProc -> This procedure will be called when  any catalog service
  3447. ;    call intended for the CSAM (other then parse calls)
  3448. ;    DSAMDirParseProc -> This procedure will be called when any of the parse calls
  3449. ;    are called.
  3450. ;    DSAMAuthProc -> This procedure will be called when any of the Authentication Calls
  3451. ;    are made to the CSAM. If the CSAM does not support authentication, this can be nil.
  3452. ;This call can be done only in synchronous mode.
  3453. ;
  3454. ; typedef DSAMDirUPP         DSAMDirProc
  3455. ; typedef DSAMDirParseUPP     DSAMDirParseProc
  3456. ; typedef DSAMAuthUPP         DSAMAuthProc
  3457. DirInstantiateDSAMPB     RECORD    0
  3458. qLink                     ds.l   1        ; offset: $0 (0)
  3459. reserved1                 ds.l   1        ; offset: $4 (4)
  3460. reserved2                 ds.l   1        ; offset: $8 (8)
  3461. ioCompletion             ds.l   1        ; offset: $C (12)
  3462. ioResult                 ds.w   1        ; offset: $10 (16)
  3463. saveA5                     ds.l   1        ; offset: $12 (18)
  3464. reqCode                     ds.w   1        ; offset: $16 (22)
  3465. reserved                 ds.l   2        ; offset: $18 (24)
  3466. serverHint                 ds     AddrBlock ; offset: $20 (32)
  3467. dsRefNum                 ds.w   1        ; offset: $24 (36)
  3468. callID                     ds.l   1        ; offset: $26 (38)
  3469. identity                 ds.l   1        ; offset: $2A (42)
  3470. gReserved1                 ds.l   1        ; offset: $2E (46)
  3471. gReserved2                 ds.l   1        ; offset: $32 (50)
  3472. gReserved3                 ds.l   1        ; offset: $36 (54)
  3473. clientData                 ds.l   1        ; offset: $3A (58)
  3474. dsamName                 ds.l   1        ; offset: $3E (62)        ;  --> dsamName name 
  3475. dsamKind                 ds.l   1        ; offset: $42 (66)        ;  --> DSAMKind 
  3476. dsamData                 ds.l   1        ; offset: $46 (70)        ;  --> dsamData  
  3477. dsamDirProc                 ds.l   1        ; offset: $4A (74)        ;  --> of type DSAMDirProc: for catalog service calls 
  3478. dsamDirParseProc         ds.l   1        ; offset: $4E (78)        ;  --> of type DSAMDirParseProc: for catalog service parse calls 
  3479. dsamAuthProc             ds.l   1        ; offset: $52 (82)        ;  --> of type DSAMAuthProc: for authetication service calls 
  3480. sizeof                     EQU *            ; size:   $56 (86)
  3481.                         ENDR
  3482.  
  3483. ; typedef struct DirInstantiateDSAMPB  DirInstantiateDSAMPB
  3484. ;
  3485. ;DirRemoveDSAM: This call can be used to remove  a CSAM file from the OCE Setup.
  3486. ;    dsamRecordCID -> is the creationID of the CSAM record.
  3487. ;This call can be made only in synchronous mode.
  3488. ;
  3489. DirRemoveDSAMPB         RECORD    0
  3490. qLink                     ds.l   1        ; offset: $0 (0)
  3491. reserved1                 ds.l   1        ; offset: $4 (4)
  3492. reserved2                 ds.l   1        ; offset: $8 (8)
  3493. ioCompletion             ds.l   1        ; offset: $C (12)
  3494. ioResult                 ds.w   1        ; offset: $10 (16)
  3495. saveA5                     ds.l   1        ; offset: $12 (18)
  3496. reqCode                     ds.w   1        ; offset: $16 (22)
  3497. reserved                 ds.l   2        ; offset: $18 (24)
  3498. serverHint                 ds     AddrBlock ; offset: $20 (32)
  3499. dsRefNum                 ds.w   1        ; offset: $24 (36)
  3500. callID                     ds.l   1        ; offset: $26 (38)
  3501. identity                 ds.l   1        ; offset: $2A (42)
  3502. gReserved1                 ds.l   1        ; offset: $2E (46)
  3503. gReserved2                 ds.l   1        ; offset: $32 (50)
  3504. gReserved3                 ds.l   1        ; offset: $36 (54)
  3505. clientData                 ds.l   1        ; offset: $3A (58)
  3506. dsamRecordCID             ds.l   2        ; offset: $3E (62)        ; <--  CreationID for the CSAM record 
  3507. sizeof                     EQU *            ; size:   $46 (70)
  3508.                         ENDR
  3509.  
  3510. ; typedef struct DirRemoveDSAMPB  DirRemoveDSAMPB
  3511. ;
  3512. ;DirAddDSAMDirectory: This call can be used to inorm the availability of a CSAM catalog.
  3513. ;    dsamRecordCID ->  recordID for the CSAM serving this catalog
  3514. ;    directoryName ->  name of the catalog
  3515. ;    discriminator -> discriminator for the catalog
  3516. ;    directoryRecordCID -> If the call is successful, creationID for the record will
  3517. ;                            be returned.
  3518. ;
  3519. DirAddDSAMDirectoryPB     RECORD    0
  3520. qLink                     ds.l   1        ; offset: $0 (0)
  3521. reserved1                 ds.l   1        ; offset: $4 (4)
  3522. reserved2                 ds.l   1        ; offset: $8 (8)
  3523. ioCompletion             ds.l   1        ; offset: $C (12)
  3524. ioResult                 ds.w   1        ; offset: $10 (16)
  3525. saveA5                     ds.l   1        ; offset: $12 (18)
  3526. reqCode                     ds.w   1        ; offset: $16 (22)
  3527. reserved                 ds.l   2        ; offset: $18 (24)
  3528. serverHint                 ds     AddrBlock ; offset: $20 (32)
  3529. dsRefNum                 ds.w   1        ; offset: $24 (36)
  3530. callID                     ds.l   1        ; offset: $26 (38)
  3531. identity                 ds.l   1        ; offset: $2A (42)
  3532. gReserved1                 ds.l   1        ; offset: $2E (46)
  3533. gReserved2                 ds.l   1        ; offset: $32 (50)
  3534. gReserved3                 ds.l   1        ; offset: $36 (54)
  3535. clientData                 ds.l   1        ; offset: $3A (58)
  3536. dsamRecordCID             ds.l   2        ; offset: $3E (62)        ;  --> CreationID for the CSAM record 
  3537. directoryName             ds.l   1        ; offset: $46 (70)        ;  --> catalog name 
  3538. discriminator             ds.l   2        ; offset: $4A (74)        ;  --> catalog discriminator 
  3539. features                 ds.l   1        ; offset: $52 (82)        ;  --> capabilty flags for the catalog 
  3540. directoryRecordCID         ds.l   2        ; offset: $56 (86)        ; <--  creationID for the catalog record 
  3541. sizeof                     EQU *            ; size:   $5E (94)
  3542.                         ENDR
  3543.  
  3544. ; typedef struct DirAddDSAMDirectoryPB  DirAddDSAMDirectoryPB
  3545. ;
  3546. ;DirRemoveDirectory: This call can be used to inform the toolbox that
  3547. ;catalog specified by 'directoryRecordCID'
  3548. ;
  3549. DirRemoveDirectoryPB     RECORD    0
  3550. qLink                     ds.l   1        ; offset: $0 (0)
  3551. reserved1                 ds.l   1        ; offset: $4 (4)
  3552. reserved2                 ds.l   1        ; offset: $8 (8)
  3553. ioCompletion             ds.l   1        ; offset: $C (12)
  3554. ioResult                 ds.w   1        ; offset: $10 (16)
  3555. saveA5                     ds.l   1        ; offset: $12 (18)
  3556. reqCode                     ds.w   1        ; offset: $16 (22)
  3557. reserved                 ds.l   2        ; offset: $18 (24)
  3558. serverHint                 ds     AddrBlock ; offset: $20 (32)
  3559. dsRefNum                 ds.w   1        ; offset: $24 (36)
  3560. callID                     ds.l   1        ; offset: $26 (38)
  3561. identity                 ds.l   1        ; offset: $2A (42)
  3562. gReserved1                 ds.l   1        ; offset: $2E (46)
  3563. gReserved2                 ds.l   1        ; offset: $32 (50)
  3564. gReserved3                 ds.l   1        ; offset: $36 (54)
  3565. clientData                 ds.l   1        ; offset: $3A (58)
  3566. directoryRecordCID         ds.l   2        ; offset: $3E (62)        ;  --> creationID for the catalog record 
  3567. sizeof                     EQU *            ; size:   $46 (70)
  3568.                         ENDR
  3569.  
  3570. ; typedef struct DirRemoveDirectoryPB  DirRemoveDirectoryPB
  3571. ;
  3572. ; * DSGetExtendedDirectoriesInfo::  This call can be used to get
  3573. ; * the information of various foreign catalogs supported.
  3574. ; * Typically a DE Template  may make this call to create a
  3575. ; * Address template or a Gateway may make this call to findout
  3576. ; * catalog name space in which MSAM may would support. 
  3577. ; * Client will supply a buffer pointed by 'bufferPtr' of size 'bufferLength'. 
  3578. ; * When the call completes with 'daMoreData' error, client can examine 'totalEntries'
  3579. ; * returned and reissue the call with increaing buffer.
  3580. ; * Toolbox will findout the private information of each of the Foreign Catalogs
  3581. ; * by polling CSAM's, Gateways, and MnMServers. The Information returned
  3582. ; * for each catalog will be packed in the format: 
  3583. ; * typedef struct EachDirectoryData {
  3584. ; *  PackedRLI                        pRLI;           //  packed RLI for the catalog
  3585. ; *  OSType                            entnType;        //  Entn Type
  3586. ; *  long                            hasMailSlot;   //  If this catalog has mail slot this will be 1 otherwise zero
  3587. ; *    ProtoRString                    RealName;      //  Packed RString for Real Name (padded to even boundary) 
  3588. ; *    ProtoRString                    comment;       //  Packed RString holding any comment for Display (padded to even boundary)
  3589. ; *    long                            length;        //  data length
  3590. ; *    char                            data[length];  //  data padded to even boundary
  3591. ; * };
  3592. ; *
  3593. ; *
  3594. ; *
  3595. ; * typedef struct myData {
  3596. ; *      EachDirectoryData    data[numberOfEntries];    // data packed in the above format
  3597. ; *    };
  3598. ; *
  3599. DirGetExtendedDirectoriesInfoPB RECORD    0
  3600. qLink                     ds.l   1        ; offset: $0 (0)
  3601. reserved1                 ds.l   1        ; offset: $4 (4)
  3602. reserved2                 ds.l   1        ; offset: $8 (8)
  3603. ioCompletion             ds.l   1        ; offset: $C (12)
  3604. ioResult                 ds.w   1        ; offset: $10 (16)
  3605. saveA5                     ds.l   1        ; offset: $12 (18)
  3606. reqCode                     ds.w   1        ; offset: $16 (22)
  3607. reserved                 ds.l   2        ; offset: $18 (24)
  3608. serverHint                 ds     AddrBlock ; offset: $20 (32)
  3609. dsRefNum                 ds.w   1        ; offset: $24 (36)
  3610. callID                     ds.l   1        ; offset: $26 (38)
  3611. identity                 ds.l   1        ; offset: $2A (42)
  3612. gReserved1                 ds.l   1        ; offset: $2E (46)
  3613. gReserved2                 ds.l   1        ; offset: $32 (50)
  3614. gReserved3                 ds.l   1        ; offset: $36 (54)
  3615. clientData                 ds.l   1        ; offset: $3A (58)
  3616. buffer                     ds.l   1        ; offset: $3E (62)        ;  --> Pointer to a buufer where data will be returned 
  3617. bufferSize                 ds.l   1        ; offset: $42 (66)        ;  --> Length of the buffer, Length of actual data will be returned here 
  3618. totalEntries             ds.l   1        ; offset: $46 (70)        ; <--  Total Number of Catalogs found 
  3619. actualEntries             ds.l   1        ; offset: $4A (74)        ; <--  Total Number of Catalogs entries returned 
  3620. sizeof                     EQU *            ; size:   $4E (78)
  3621.                         ENDR
  3622.  
  3623. ; typedef struct DirGetExtendedDirectoriesInfoPB  DirGetExtendedDirectoriesInfoPB
  3624. ;
  3625. ;DirGetDirectoryIconPB: With this call a client can find out about
  3626. ;the icons supported by the Catalog.
  3627. ;Both ADAP and Personal Catalog will not support this call for now.
  3628. ;A CSAM can support a call so that DE Extension can use this
  3629. ;call to find appropriate Icons.
  3630. ;
  3631. ;Returns kOCEBufferTooSmall if icon is too small, but will update iconSize.
  3632. ;
  3633. DirGetDirectoryIconPB     RECORD    0
  3634. qLink                     ds.l   1        ; offset: $0 (0)
  3635. reserved1                 ds.l   1        ; offset: $4 (4)
  3636. reserved2                 ds.l   1        ; offset: $8 (8)
  3637. ioCompletion             ds.l   1        ; offset: $C (12)
  3638. ioResult                 ds.w   1        ; offset: $10 (16)
  3639. saveA5                     ds.l   1        ; offset: $12 (18)
  3640. reqCode                     ds.w   1        ; offset: $16 (22)
  3641. reserved                 ds.l   2        ; offset: $18 (24)
  3642. serverHint                 ds     AddrBlock ; offset: $20 (32)
  3643. dsRefNum                 ds.w   1        ; offset: $24 (36)
  3644. callID                     ds.l   1        ; offset: $26 (38)
  3645. identity                 ds.l   1        ; offset: $2A (42)
  3646. gReserved1                 ds.l   1        ; offset: $2E (46)
  3647. gReserved2                 ds.l   1        ; offset: $32 (50)
  3648. gReserved3                 ds.l   1        ; offset: $36 (54)
  3649. clientData                 ds.l   1        ; offset: $3A (58)
  3650. pRLI                     ds.l   1        ; offset: $3E (62)        ;  --> packed RLI for the catalog 
  3651. iconType                 ds.l   1        ; offset: $42 (66)        ;  --> Type of Icon requested 
  3652. iconBuffer                 ds.l   1        ; offset: $46 (70)        ;  --> Buffer to hold Icon Data 
  3653. bufferSize                 ds.l   1        ; offset: $4A (74)        ;  <-> size of buffer to hold icon data 
  3654. sizeof                     EQU *            ; size:   $4E (78)
  3655.                         ENDR
  3656.  
  3657. ; typedef struct DirGetDirectoryIconPB  DirGetDirectoryIconPB
  3658. ;
  3659. ;DirGetOCESetupRefNum: This call will return 'dsRefnum' for the OCE Setup Personal Catalog
  3660. ;and oceSetupRecordCID for the oceSetup Record.
  3661. ;Clients interested in manipulating OCE Setup Personal Catalog directly should
  3662. ;make this call to get 'dsRefNum'.
  3663. ;'dsRefNum' will be returned in the standard field in the DirParamHeader.
  3664. ;
  3665. DirGetOCESetupRefNumPB     RECORD    0
  3666. qLink                     ds.l   1        ; offset: $0 (0)
  3667. reserved1                 ds.l   1        ; offset: $4 (4)
  3668. reserved2                 ds.l   1        ; offset: $8 (8)
  3669. ioCompletion             ds.l   1        ; offset: $C (12)
  3670. ioResult                 ds.w   1        ; offset: $10 (16)
  3671. saveA5                     ds.l   1        ; offset: $12 (18)
  3672. reqCode                     ds.w   1        ; offset: $16 (22)
  3673. reserved                 ds.l   2        ; offset: $18 (24)
  3674. serverHint                 ds     AddrBlock ; offset: $20 (32)
  3675. dsRefNum                 ds.w   1        ; offset: $24 (36)
  3676. callID                     ds.l   1        ; offset: $26 (38)
  3677. identity                 ds.l   1        ; offset: $2A (42)
  3678. gReserved1                 ds.l   1        ; offset: $2E (46)
  3679. gReserved2                 ds.l   1        ; offset: $32 (50)
  3680. gReserved3                 ds.l   1        ; offset: $36 (54)
  3681. clientData                 ds.l   1        ; offset: $3A (58)
  3682. oceSetupRecordCID         ds.l   2        ; offset: $3E (62)        ; --> creationID for the catalog record 
  3683. sizeof                     EQU *            ; size:   $46 (70)
  3684.                         ENDR
  3685.  
  3686. ; typedef struct DirGetOCESetupRefNumPB  DirGetOCESetupRefNumPB
  3687. ;***************************************************************************
  3688. ; Catalog and Authentication control blocks and operation definitions 
  3689. AuthParamBlock             RECORD    0
  3690. qLink                     ds.l   1        ; offset: $0 (0)
  3691. reserved1                 ds.l   1        ; offset: $4 (4)
  3692. reserved2                 ds.l   1        ; offset: $8 (8)
  3693. ioCompletion             ds.l   1        ; offset: $C (12)
  3694. ioResult                 ds.w   1        ; offset: $10 (16)
  3695. saveA5                     ds.l   1        ; offset: $12 (18)
  3696. reqCode                     ds.w   1        ; offset: $16 (22)
  3697. reserved                 ds.l   2        ; offset: $18 (24)
  3698. serverHint                 ds     AddrBlock ; offset: $20 (32)
  3699. dsRefNum                 ds.w   1        ; offset: $24 (36)
  3700. callID                     ds.l   1        ; offset: $26 (38)
  3701. identity                 ds.l   1        ; offset: $2A (42)
  3702. gReserved1                 ds.l   1        ; offset: $2E (46)
  3703. gReserved2                 ds.l   1        ; offset: $32 (50)
  3704. gReserved3                 ds.l   1        ; offset: $36 (54)
  3705. clientData                 ds.l   1        ; offset: $3A (58)
  3706.                          ORG 0
  3707. bindIdentityPB             ds     AuthBindSpecificIdentityPB ; offset: $0 (0)
  3708.                          ORG 0
  3709. unbindIdentityPB         ds     AuthUnbindSpecificIdentityPB ; offset: $0 (0)
  3710.                          ORG 0
  3711. resolveCreationIDPB         ds     AuthResolveCreationIDPB ; offset: $0 (0)
  3712.                          ORG 0
  3713. getIdentityInfoPB         ds     AuthGetSpecificIdentityInfoPB ; offset: $0 (0)
  3714.                          ORG 0
  3715. addKeyPB                 ds     AuthAddKeyPB ; offset: $0 (0)
  3716.                          ORG 0
  3717. changeKeyPB                 ds     AuthChangeKeyPB ; offset: $0 (0)
  3718.                          ORG 0
  3719. deleteKeyPB                 ds     AuthDeleteKeyPB ; offset: $0 (0)
  3720.                          ORG 0
  3721. passwordToKeyPB             ds     AuthPasswordToKeyPB ; offset: $0 (0)
  3722.                          ORG 0
  3723. getCredentialsPB         ds     AuthGetCredentialsPB ; offset: $0 (0)
  3724.                          ORG 0
  3725. decryptCredentialsPB     ds     AuthDecryptCredentialsPB ; offset: $0 (0)
  3726.                          ORG 0
  3727. makeChallengePB             ds     AuthMakeChallengePB ; offset: $0 (0)
  3728.                          ORG 0
  3729. makeReplyPB                 ds     AuthMakeReplyPB ; offset: $0 (0)
  3730.                          ORG 0
  3731. verifyReplyPB             ds     AuthVerifyReplyPB ; offset: $0 (0)
  3732.                          ORG 0
  3733. getUTCTimePB             ds     AuthGetUTCTimePB ; offset: $0 (0)
  3734.                          ORG 0
  3735. makeProxyPB                 ds     AuthMakeProxyPB ; offset: $0 (0)
  3736.                          ORG 0
  3737. tradeProxyForCredentialsPB ds     AuthTradeProxyForCredentialsPB ; offset: $0 (0)
  3738.                          ORG 0
  3739. getLocalIdentityPB         ds     AuthGetLocalIdentityPB ; offset: $0 (0)
  3740.                          ORG 0
  3741. unLockLocalIdentityPB     ds     AuthUnlockLocalIdentityPB ; offset: $0 (0)
  3742.                          ORG 0
  3743. lockLocalIdentityPB         ds     AuthLockLocalIdentityPB ; offset: $0 (0)
  3744.                          ORG 0
  3745. localIdentityQInstallPB     ds     AuthAddToLocalIdentityQueuePB ; offset: $0 (0)
  3746.                          ORG 0
  3747. localIdentityQRemovePB     ds     AuthRemoveFromLocalIdentityQueuePB ; offset: $0 (0)
  3748.                          ORG 0
  3749. setupLocalIdentityPB     ds     AuthSetupLocalIdentityPB ; offset: $0 (0)
  3750.                          ORG 0
  3751. changeLocalIdentityPB     ds     AuthChangeLocalIdentityPB ; offset: $0 (0)
  3752.                          ORG 0
  3753. removeLocalIdentityPB     ds     AuthRemoveLocalIdentityPB ; offset: $0 (0)
  3754.                          ORG 0
  3755. setupDirectoryIdentityPB ds     OCESetupAddDirectoryInfoPB ; offset: $0 (0)
  3756.                          ORG 0
  3757. changeDirectoryIdentityPB ds     OCESetupChangeDirectoryInfoPB ; offset: $0 (0)
  3758.                          ORG 0
  3759. removeDirectoryIdentityPB ds     OCESetupRemoveDirectoryInfoPB ; offset: $0 (0)
  3760.                          ORG 0
  3761. getDirectoryIdentityInfoPB ds     OCESetupGetDirectoryInfoPB ; offset: $0 (0)
  3762.                          ORG 98
  3763. sizeof                     EQU *            ; size:   $62 (98)
  3764.                         ENDR
  3765.  
  3766. DirParamBlock             RECORD    0
  3767. qLink                     ds.l   1        ; offset: $0 (0)
  3768. reserved1                 ds.l   1        ; offset: $4 (4)
  3769. reserved2                 ds.l   1        ; offset: $8 (8)
  3770. ioCompletion             ds.l   1        ; offset: $C (12)
  3771. ioResult                 ds.w   1        ; offset: $10 (16)
  3772. saveA5                     ds.l   1        ; offset: $12 (18)
  3773. reqCode                     ds.w   1        ; offset: $16 (22)
  3774. reserved                 ds.l   2        ; offset: $18 (24)
  3775. serverHint                 ds     AddrBlock ; offset: $20 (32)
  3776. dsRefNum                 ds.w   1        ; offset: $24 (36)
  3777. callID                     ds.l   1        ; offset: $26 (38)
  3778. identity                 ds.l   1        ; offset: $2A (42)
  3779. gReserved1                 ds.l   1        ; offset: $2E (46)
  3780. gReserved2                 ds.l   1        ; offset: $32 (50)
  3781. gReserved3                 ds.l   1        ; offset: $36 (54)
  3782. clientData                 ds.l   1        ; offset: $3A (58)
  3783.                          ORG 0
  3784. addRecordPB                 ds     DirAddRecordPB ; offset: $0 (0)
  3785.                          ORG 0
  3786. deleteRecordPB             ds     DirDeleteRecordPB ; offset: $0 (0)
  3787.                          ORG 0
  3788. enumerateGetPB             ds     DirEnumerateGetPB ; offset: $0 (0)
  3789.                          ORG 0
  3790. enumerateParsePB         ds     DirEnumerateParsePB ; offset: $0 (0)
  3791.                          ORG 0
  3792. findRecordGetPB             ds     DirFindRecordGetPB ; offset: $0 (0)
  3793.                          ORG 0
  3794. findRecordParsePB         ds     DirFindRecordParsePB ; offset: $0 (0)
  3795.                          ORG 0
  3796. lookupGetPB                 ds     DirLookupGetPB ; offset: $0 (0)
  3797.                          ORG 0
  3798. lookupParsePB             ds     DirLookupParsePB ; offset: $0 (0)
  3799.                          ORG 0
  3800. addAttributeValuePB         ds     DirAddAttributeValuePB ; offset: $0 (0)
  3801.                          ORG 0
  3802. deleteAttributeTypePB     ds     DirDeleteAttributeTypePB ; offset: $0 (0)
  3803.                          ORG 0
  3804. deleteAttributeValuePB     ds     DirDeleteAttributeValuePB ; offset: $0 (0)
  3805.                          ORG 0
  3806. changeAttributeValuePB     ds     DirChangeAttributeValuePB ; offset: $0 (0)
  3807.                          ORG 0
  3808. verifyAttributeValuePB     ds     DirVerifyAttributeValuePB ; offset: $0 (0)
  3809.                          ORG 0
  3810. findValuePB                 ds     DirFindValuePB ; offset: $0 (0)
  3811.                          ORG 0
  3812. enumeratePseudonymGetPB     ds     DirEnumeratePseudonymGetPB ; offset: $0 (0)
  3813.                          ORG 0
  3814. enumeratePseudonymParsePB ds     DirEnumeratePseudonymParsePB ; offset: $0 (0)
  3815.                          ORG 0
  3816. addPseudonymPB             ds     DirAddPseudonymPB ; offset: $0 (0)
  3817.                          ORG 0
  3818. deletePseudonymPB         ds     DirDeletePseudonymPB ; offset: $0 (0)
  3819.                          ORG 0
  3820. addAliasPB                 ds     DirAddAliasPB ; offset: $0 (0)
  3821.                          ORG 0
  3822. enumerateAttributeTypesGetPB ds     DirEnumerateAttributeTypesGetPB ; offset: $0 (0)
  3823.                          ORG 0
  3824. enumerateAttributeTypesParsePB ds     DirEnumerateAttributeTypesParsePB ; offset: $0 (0)
  3825.                          ORG 0
  3826. getNameAndTypePB         ds     DirGetNameAndTypePB ; offset: $0 (0)
  3827.                          ORG 0
  3828. setNameAndTypePB         ds     DirSetNameAndTypePB ; offset: $0 (0)
  3829.                          ORG 0
  3830. getRecordMetaInfoPB         ds     DirGetRecordMetaInfoPB ; offset: $0 (0)
  3831.                          ORG 0
  3832. getDNodeMetaInfoPB         ds     DirGetDNodeMetaInfoPB ; offset: $0 (0)
  3833.                          ORG 0
  3834. getDirectoryInfoPB         ds     DirGetDirectoryInfoPB ; offset: $0 (0)
  3835.                          ORG 0
  3836. getDNodeAccessControlGetPB ds     DirGetDNodeAccessControlGetPB ; offset: $0 (0)
  3837.                          ORG 0
  3838. getDNodeAccessControlParsePB ds     DirGetDNodeAccessControlParsePB ; offset: $0 (0)
  3839.                          ORG 0
  3840. getRecordAccessControlGetPB ds     DirGetRecordAccessControlGetPB ; offset: $0 (0)
  3841.                          ORG 0
  3842. getRecordAccessControlParsePB ds     DirGetRecordAccessControlParsePB ; offset: $0 (0)
  3843.                          ORG 0
  3844. getAttributeAccessControlGetPB ds     DirGetAttributeAccessControlGetPB ; offset: $0 (0)
  3845.                          ORG 0
  3846. getAttributeAccessControlParsePB ds     DirGetAttributeAccessControlParsePB ; offset: $0 (0)
  3847.                          ORG 0
  3848. enumerateDirectoriesGetPB ds     DirEnumerateDirectoriesGetPB ; offset: $0 (0)
  3849.                          ORG 0
  3850. enumerateDirectoriesParsePB ds     DirEnumerateDirectoriesParsePB ; offset: $0 (0)
  3851.                          ORG 0
  3852. addADAPDirectoryPB         ds     DirAddADAPDirectoryPB ; offset: $0 (0)
  3853.                          ORG 0
  3854. removeDirectoryPB         ds     DirRemoveDirectoryPB ; offset: $0 (0)
  3855.                          ORG 0
  3856. netSearchADAPDirectoriesGetPB ds     DirNetSearchADAPDirectoriesGetPB ; offset: $0 (0)
  3857.                          ORG 0
  3858. netSearchADAPDirectoriesParsePB ds     DirNetSearchADAPDirectoriesParsePB ; offset: $0 (0)
  3859.                          ORG 0
  3860. findADAPDirectoryByNetSearchPB ds     DirFindADAPDirectoryByNetSearchPB ; offset: $0 (0)
  3861.                          ORG 0
  3862. mapDNodeNumberToPathNamePB ds     DirMapDNodeNumberToPathNamePB ; offset: $0 (0)
  3863.                          ORG 0
  3864. mapPathNameToDNodeNumberPB ds     DirMapPathNameToDNodeNumberPB ; offset: $0 (0)
  3865.                          ORG 0
  3866. getLocalNetworkSpecPB     ds     DirGetLocalNetworkSpecPB ; offset: $0 (0)
  3867.                          ORG 0
  3868. getDNodeInfoPB             ds     DirGetDNodeInfoPB ; offset: $0 (0)
  3869.                          ORG 0
  3870. createPersonalDirectoryPB ds     DirCreatePersonalDirectoryPB ; offset: $0 (0)
  3871.                          ORG 0
  3872. openPersonalDirectoryPB     ds     DirOpenPersonalDirectoryPB ; offset: $0 (0)
  3873.                          ORG 0
  3874. closePersonalDirectoryPB ds     DirClosePersonalDirectoryPB ; offset: $0 (0)
  3875.                          ORG 0
  3876. makePersonalDirectoryRLIPB ds     DirMakePersonalDirectoryRLIPB ; offset: $0 (0)
  3877.                          ORG 0
  3878. addDSAMPB                 ds     DirAddDSAMPB ; offset: $0 (0)
  3879.                          ORG 0
  3880. instantiateDSAMPB         ds     DirInstantiateDSAMPB ; offset: $0 (0)
  3881.                          ORG 0
  3882. removeDSAMPB             ds     DirRemoveDSAMPB ; offset: $0 (0)
  3883.                          ORG 0
  3884. addDSAMDirectoryPB         ds     DirAddDSAMDirectoryPB ; offset: $0 (0)
  3885.                          ORG 0
  3886. getExtendedDirectoriesInfoPB ds     DirGetExtendedDirectoriesInfoPB ; offset: $0 (0)
  3887.                          ORG 0
  3888. getDirectoryIconPB         ds     DirGetDirectoryIconPB ; offset: $0 (0)
  3889.                          ORG 0
  3890. dirGetOCESetupRefNumPB     ds     DirGetOCESetupRefNumPB ; offset: $0 (0)
  3891.                          ORG 0
  3892. abortPB                     ds     DirAbortPB ; offset: $0 (0)
  3893.                          ORG 174
  3894. sizeof                     EQU *            ; size:   $AE (174)
  3895.                         ENDR
  3896.  
  3897. ;
  3898. ;pass kThisRecordOwnerMask, kFriendsMask, kAuthenticatedInDNodeMask, kAuthenticatedInDirectoryMask,
  3899. ;kGuestMask, or kMeMask to this routine, and it will return a pointer to a
  3900. ;DSSpec that can be used in the Get or Set Access Controls calls.
  3901. ;
  3902. ;
  3903. ; pascal DSSpecPtr OCEGetAccessControlDSSpec(CategoryMask categoryBitMask)
  3904. ;
  3905.     IF ¬ GENERATINGCFM THEN
  3906.         Macro
  3907.         _OCEGetAccessControlDSSpec
  3908.             move.w    #837,d0
  3909.             dc.w     $AA5C
  3910.         EndM
  3911.     ELSE
  3912.         IMPORT_CFM_FUNCTION    OCEGetAccessControlDSSpec
  3913.     ENDIF
  3914.  
  3915.  
  3916. kAuthBindSpecificIdentity        EQU        $200
  3917. kAuthUnbindSpecificIdentity        EQU        $201
  3918. kAuthResolveCreationID            EQU        $202
  3919. kAuthGetSpecificIdentityInfo    EQU        $203
  3920. kAuthGetLocalIdentity            EQU        $204
  3921. kAuthAddToLocalIdentityQueue    EQU        $205
  3922. kAuthRemoveFromLocalIdentityQueue EQU        $206
  3923. kAuthAddKey                        EQU        $207
  3924. kAuthChangeKey                    EQU        $208
  3925. kAuthDeleteKey                    EQU        $209
  3926. kAuthPasswordToKey                EQU        $20A
  3927. kAuthGetCredentials                EQU        $20B
  3928. kAuthDecryptCredentials            EQU        $20C
  3929. kOCESetupRemoveDirectoryInfo    EQU        $20D
  3930. kOCESetupGetDirectoryInfo        EQU        $20E
  3931. kAuthMakeChallenge                EQU        $20F
  3932. kAuthMakeReply                    EQU        $210
  3933. kAuthVerifyReply                EQU        $211
  3934. kAuthMakeProxy                    EQU        $212
  3935. kAuthTradeProxyForCredentials    EQU        $213
  3936. kAuthUnlockLocalIdentity        EQU        $214
  3937. kAuthLockLocalIdentity            EQU        $215
  3938. kAuthSetupLocalIdentity            EQU        $216
  3939. kAuthChangeLocalIdentity        EQU        $217
  3940. kAuthRemoveLocalIdentity        EQU        $218
  3941. kOCESetupAddDirectoryInfo        EQU        $219
  3942. kAuthGetUTCTime                    EQU        $21A
  3943. kOCESetupChangeDirectoryInfo    EQU        $21B
  3944. ; 0x100 is used as private command 
  3945. kDirEnumerateParse                EQU        $101
  3946. kDirLookupParse                    EQU        $102
  3947. kDirEnumerateAttributeTypesParse EQU        $103
  3948. kDirEnumeratePseudonymParse        EQU        $104
  3949. kDirNetSearchADAPDirectoriesParse EQU        $105
  3950. kDirEnumerateDirectoriesParse    EQU        $106
  3951. kDirFindADAPDirectoryByNetSearch EQU        $107
  3952. kDirNetSearchADAPDirectoriesGet    EQU        $108
  3953. kDirAddRecord                    EQU        $109
  3954. kDirDeleteRecord                EQU        $10A
  3955. kDirAddAttributeValue            EQU        $10B
  3956. kDirDeleteAttributeValue        EQU        $10C
  3957. kDirChangeAttributeValue        EQU        $10D
  3958. kDirVerifyAttributeValue        EQU        $10E
  3959. kDirAddPseudonym                EQU        $10F
  3960. kDirDeletePseudonym                EQU        $110
  3961. kDirEnumerateGet                EQU        $111
  3962. kDirEnumerateAttributeTypesGet    EQU        $112
  3963. kDirEnumeratePseudonymGet        EQU        $113
  3964. kDirGetNameAndType                EQU        $114
  3965. kDirSetNameAndType                EQU        $115
  3966. kDirGetRecordMetaInfo            EQU        $116
  3967. kDirLookupGet                    EQU        $117
  3968. kDirGetDNodeMetaInfo            EQU        $118
  3969. kDirGetDirectoryInfo            EQU        $119
  3970. kDirEnumerateDirectoriesGet        EQU        $11A
  3971. kDirAbort                        EQU        $11B
  3972. kDirAddAlias                    EQU        $11C
  3973. kDirAddDSAM                        EQU        $11D
  3974. kDirOpenPersonalDirectory        EQU        $11E
  3975. kDirCreatePersonalDirectory        EQU        $11F
  3976. kDirRemoveDSAM                    EQU        $120
  3977. kDirGetDirectoryIcon            EQU        $121
  3978. kDirMapPathNameToDNodeNumber    EQU        $122
  3979. kDirMapDNodeNumberToPathName    EQU        $123
  3980. kDirGetLocalNetworkSpec            EQU        $124
  3981. kDirGetDNodeInfo                EQU        $125
  3982. kDirFindValue                    EQU        $126
  3983. kDirInstantiateDSAM                EQU        $127
  3984. kDirGetOCESetupRefNum            EQU        $128
  3985. kDirGetDNodeAccessControlGet    EQU        $12A
  3986. kDirGetRecordAccessControlGet    EQU        $12C
  3987. kDirGetAttributeAccessControlGet EQU        $12E
  3988. kDirGetDNodeAccessControlParse    EQU        $12F
  3989. kDirDeleteAttributeType            EQU        $130
  3990. kDirClosePersonalDirectory        EQU        $131
  3991. kDirMakePersonalDirectoryRLI    EQU        $132
  3992. kDirAddDSAMDirectory            EQU        $133
  3993. kDirGetRecordAccessControlParse    EQU        $134
  3994. kDirRemoveDirectory                EQU        $135
  3995. kDirGetExtendedDirectoriesInfo    EQU        $136
  3996. kDirAddADAPDirectory            EQU        $137
  3997. kDirGetAttributeAccessControlParse EQU        $138
  3998. kDirFindRecordGet                EQU        $140
  3999. kDirFindRecordParse                EQU        $141
  4000.  
  4001. ;
  4002. ; pascal OSErr AuthBindSpecificIdentity(AuthParamBlockPtr paramBlock, Boolean async)
  4003. ;
  4004.     IF ¬ GENERATINGCFM THEN
  4005.         Macro
  4006.         _AuthBindSpecificIdentity
  4007.             move.w    #$200,-(sp)
  4008.             dc.w     $AA5E
  4009.         EndM
  4010.     ELSE
  4011.         IMPORT_CFM_FUNCTION    AuthBindSpecificIdentity
  4012.     ENDIF
  4013.  
  4014. ;
  4015. ; pascal OSErr AuthUnbindSpecificIdentity(AuthParamBlockPtr paramBlock, Boolean async)
  4016. ;
  4017.     IF ¬ GENERATINGCFM THEN
  4018.         Macro
  4019.         _AuthUnbindSpecificIdentity
  4020.             move.w    #$201,-(sp)
  4021.             dc.w     $AA5E
  4022.         EndM
  4023.     ELSE
  4024.         IMPORT_CFM_FUNCTION    AuthUnbindSpecificIdentity
  4025.     ENDIF
  4026.  
  4027. ;
  4028. ; pascal OSErr AuthResolveCreationID(AuthParamBlockPtr paramBlock, Boolean async)
  4029. ;
  4030.     IF ¬ GENERATINGCFM THEN
  4031.         Macro
  4032.         _AuthResolveCreationID
  4033.             move.w    #$202,-(sp)
  4034.             dc.w     $AA5E
  4035.         EndM
  4036.     ELSE
  4037.         IMPORT_CFM_FUNCTION    AuthResolveCreationID
  4038.     ENDIF
  4039.  
  4040. ;
  4041. ; pascal OSErr AuthGetSpecificIdentityInfo(AuthParamBlockPtr paramBlock, Boolean async)
  4042. ;
  4043.     IF ¬ GENERATINGCFM THEN
  4044.         Macro
  4045.         _AuthGetSpecificIdentityInfo
  4046.             move.w    #$203,-(sp)
  4047.             dc.w     $AA5E
  4048.         EndM
  4049.     ELSE
  4050.         IMPORT_CFM_FUNCTION    AuthGetSpecificIdentityInfo
  4051.     ENDIF
  4052.  
  4053. ;
  4054. ; pascal OSErr AuthAddKey(AuthParamBlockPtr paramBlock, Boolean async)
  4055. ;
  4056.     IF ¬ GENERATINGCFM THEN
  4057.         Macro
  4058.         _AuthAddKey
  4059.             move.w    #$207,-(sp)
  4060.             dc.w     $AA5E
  4061.         EndM
  4062.     ELSE
  4063.         IMPORT_CFM_FUNCTION    AuthAddKey
  4064.     ENDIF
  4065.  
  4066. ;
  4067. ; pascal OSErr AuthChangeKey(AuthParamBlockPtr paramBlock, Boolean async)
  4068. ;
  4069.     IF ¬ GENERATINGCFM THEN
  4070.         Macro
  4071.         _AuthChangeKey
  4072.             move.w    #$208,-(sp)
  4073.             dc.w     $AA5E
  4074.         EndM
  4075.     ELSE
  4076.         IMPORT_CFM_FUNCTION    AuthChangeKey
  4077.     ENDIF
  4078.  
  4079. ;
  4080. ; pascal OSErr AuthDeleteKey(AuthParamBlockPtr paramBlock, Boolean async)
  4081. ;
  4082.     IF ¬ GENERATINGCFM THEN
  4083.         Macro
  4084.         _AuthDeleteKey
  4085.             move.w    #$209,-(sp)
  4086.             dc.w     $AA5E
  4087.         EndM
  4088.     ELSE
  4089.         IMPORT_CFM_FUNCTION    AuthDeleteKey
  4090.     ENDIF
  4091.  
  4092. ;
  4093. ; pascal OSErr AuthPasswordToKey(AuthParamBlockPtr paramBlock, Boolean async)
  4094. ;
  4095.     IF ¬ GENERATINGCFM THEN
  4096.         Macro
  4097.         _AuthPasswordToKey
  4098.             move.w    #$20A,-(sp)
  4099.             dc.w     $AA5E
  4100.         EndM
  4101.     ELSE
  4102.         IMPORT_CFM_FUNCTION    AuthPasswordToKey
  4103.     ENDIF
  4104.  
  4105. ;
  4106. ; pascal OSErr AuthGetCredentials(AuthParamBlockPtr paramBlock, Boolean async)
  4107. ;
  4108.     IF ¬ GENERATINGCFM THEN
  4109.         Macro
  4110.         _AuthGetCredentials
  4111.             move.w    #$20B,-(sp)
  4112.             dc.w     $AA5E
  4113.         EndM
  4114.     ELSE
  4115.         IMPORT_CFM_FUNCTION    AuthGetCredentials
  4116.     ENDIF
  4117.  
  4118. ;
  4119. ; pascal OSErr AuthDecryptCredentials(AuthParamBlockPtr paramBlock, Boolean async)
  4120. ;
  4121.     IF ¬ GENERATINGCFM THEN
  4122.         Macro
  4123.         _AuthDecryptCredentials
  4124.             move.w    #$20C,-(sp)
  4125.             dc.w     $AA5E
  4126.         EndM
  4127.     ELSE
  4128.         IMPORT_CFM_FUNCTION    AuthDecryptCredentials
  4129.     ENDIF
  4130.  
  4131. ;
  4132. ; pascal OSErr AuthMakeChallenge(AuthParamBlockPtr paramBlock, Boolean async)
  4133. ;
  4134.     IF ¬ GENERATINGCFM THEN
  4135.         Macro
  4136.         _AuthMakeChallenge
  4137.             move.w    #$20F,-(sp)
  4138.             dc.w     $AA5E
  4139.         EndM
  4140.     ELSE
  4141.         IMPORT_CFM_FUNCTION    AuthMakeChallenge
  4142.     ENDIF
  4143.  
  4144. ;
  4145. ; pascal OSErr AuthMakeReply(AuthParamBlockPtr paramBlock, Boolean async)
  4146. ;
  4147.     IF ¬ GENERATINGCFM THEN
  4148.         Macro
  4149.         _AuthMakeReply
  4150.             move.w    #$210,-(sp)
  4151.             dc.w     $AA5E
  4152.         EndM
  4153.     ELSE
  4154.         IMPORT_CFM_FUNCTION    AuthMakeReply
  4155.     ENDIF
  4156.  
  4157. ;
  4158. ; pascal OSErr AuthVerifyReply(AuthParamBlockPtr paramBlock, Boolean async)
  4159. ;
  4160.     IF ¬ GENERATINGCFM THEN
  4161.         Macro
  4162.         _AuthVerifyReply
  4163.             move.w    #$211,-(sp)
  4164.             dc.w     $AA5E
  4165.         EndM
  4166.     ELSE
  4167.         IMPORT_CFM_FUNCTION    AuthVerifyReply
  4168.     ENDIF
  4169.  
  4170. ;
  4171. ; pascal OSErr AuthGetUTCTime(AuthParamBlockPtr paramBlock, Boolean async)
  4172. ;
  4173.     IF ¬ GENERATINGCFM THEN
  4174.         Macro
  4175.         _AuthGetUTCTime
  4176.             move.w    #$21A,-(sp)
  4177.             dc.w     $AA5E
  4178.         EndM
  4179.     ELSE
  4180.         IMPORT_CFM_FUNCTION    AuthGetUTCTime
  4181.     ENDIF
  4182.  
  4183. ;
  4184. ; pascal OSErr AuthMakeProxy(AuthParamBlockPtr paramBlock, Boolean async)
  4185. ;
  4186.     IF ¬ GENERATINGCFM THEN
  4187.         Macro
  4188.         _AuthMakeProxy
  4189.             move.w    #$212,-(sp)
  4190.             dc.w     $AA5E
  4191.         EndM
  4192.     ELSE
  4193.         IMPORT_CFM_FUNCTION    AuthMakeProxy
  4194.     ENDIF
  4195.  
  4196. ;
  4197. ; pascal OSErr AuthTradeProxyForCredentials(AuthParamBlockPtr paramBlock, Boolean async)
  4198. ;
  4199.     IF ¬ GENERATINGCFM THEN
  4200.         Macro
  4201.         _AuthTradeProxyForCredentials
  4202.             move.w    #$213,-(sp)
  4203.             dc.w     $AA5E
  4204.         EndM
  4205.     ELSE
  4206.         IMPORT_CFM_FUNCTION    AuthTradeProxyForCredentials
  4207.     ENDIF
  4208.  
  4209. ; Local Identity API 
  4210. ;
  4211. ; pascal OSErr AuthGetLocalIdentity(AuthParamBlockPtr paramBlock, Boolean async)
  4212. ;
  4213.     IF ¬ GENERATINGCFM THEN
  4214.         Macro
  4215.         _AuthGetLocalIdentity
  4216.             move.w    #$204,-(sp)
  4217.             dc.w     $AA5E
  4218.         EndM
  4219.     ELSE
  4220.         IMPORT_CFM_FUNCTION    AuthGetLocalIdentity
  4221.     ENDIF
  4222.  
  4223. ;
  4224. ; pascal OSErr AuthUnlockLocalIdentity(AuthParamBlockPtr paramBlock, Boolean async)
  4225. ;
  4226.     IF ¬ GENERATINGCFM THEN
  4227.         Macro
  4228.         _AuthUnlockLocalIdentity
  4229.             move.w    #$214,-(sp)
  4230.             dc.w     $AA5E
  4231.         EndM
  4232.     ELSE
  4233.         IMPORT_CFM_FUNCTION    AuthUnlockLocalIdentity
  4234.     ENDIF
  4235.  
  4236. ;
  4237. ; pascal OSErr AuthLockLocalIdentity(AuthParamBlockPtr paramBlock, Boolean async)
  4238. ;
  4239.     IF ¬ GENERATINGCFM THEN
  4240.         Macro
  4241.         _AuthLockLocalIdentity
  4242.             move.w    #$215,-(sp)
  4243.             dc.w     $AA5E
  4244.         EndM
  4245.     ELSE
  4246.         IMPORT_CFM_FUNCTION    AuthLockLocalIdentity
  4247.     ENDIF
  4248.  
  4249. ;
  4250. ; pascal OSErr AuthAddToLocalIdentityQueue(AuthParamBlockPtr paramBlock, Boolean async)
  4251. ;
  4252.     IF ¬ GENERATINGCFM THEN
  4253.         Macro
  4254.         _AuthAddToLocalIdentityQueue
  4255.             move.w    #$205,-(sp)
  4256.             dc.w     $AA5E
  4257.         EndM
  4258.     ELSE
  4259.         IMPORT_CFM_FUNCTION    AuthAddToLocalIdentityQueue
  4260.     ENDIF
  4261.  
  4262. ;
  4263. ; pascal OSErr AuthRemoveFromLocalIdentityQueue(AuthParamBlockPtr paramBlock, Boolean async)
  4264. ;
  4265.     IF ¬ GENERATINGCFM THEN
  4266.         Macro
  4267.         _AuthRemoveFromLocalIdentityQueue
  4268.             move.w    #$206,-(sp)
  4269.             dc.w     $AA5E
  4270.         EndM
  4271.     ELSE
  4272.         IMPORT_CFM_FUNCTION    AuthRemoveFromLocalIdentityQueue
  4273.     ENDIF
  4274.  
  4275. ;
  4276. ; pascal OSErr AuthSetupLocalIdentity(AuthParamBlockPtr paramBlock, Boolean async)
  4277. ;
  4278.     IF ¬ GENERATINGCFM THEN
  4279.         Macro
  4280.         _AuthSetupLocalIdentity
  4281.             move.w    #$216,-(sp)
  4282.             dc.w     $AA5E
  4283.         EndM
  4284.     ELSE
  4285.         IMPORT_CFM_FUNCTION    AuthSetupLocalIdentity
  4286.     ENDIF
  4287.  
  4288. ;
  4289. ; pascal OSErr AuthChangeLocalIdentity(AuthParamBlockPtr paramBlock, Boolean async)
  4290. ;
  4291.     IF ¬ GENERATINGCFM THEN
  4292.         Macro
  4293.         _AuthChangeLocalIdentity
  4294.             move.w    #$217,-(sp)
  4295.             dc.w     $AA5E
  4296.         EndM
  4297.     ELSE
  4298.         IMPORT_CFM_FUNCTION    AuthChangeLocalIdentity
  4299.     ENDIF
  4300.  
  4301. ;
  4302. ; pascal OSErr AuthRemoveLocalIdentity(AuthParamBlockPtr paramBlock, Boolean async)
  4303. ;
  4304.     IF ¬ GENERATINGCFM THEN
  4305.         Macro
  4306.         _AuthRemoveLocalIdentity
  4307.             move.w    #$218,-(sp)
  4308.             dc.w     $AA5E
  4309.         EndM
  4310.     ELSE
  4311.         IMPORT_CFM_FUNCTION    AuthRemoveLocalIdentity
  4312.     ENDIF
  4313.  
  4314. ;
  4315. ; pascal OSErr OCESetupAddDirectoryInfo(AuthParamBlockPtr paramBlock, Boolean async)
  4316. ;
  4317.     IF ¬ GENERATINGCFM THEN
  4318.         Macro
  4319.         _OCESetupAddDirectoryInfo
  4320.             move.w    #$219,-(sp)
  4321.             dc.w     $AA5E
  4322.         EndM
  4323.     ELSE
  4324.         IMPORT_CFM_FUNCTION    OCESetupAddDirectoryInfo
  4325.     ENDIF
  4326.  
  4327. ;
  4328. ; pascal OSErr OCESetupChangeDirectoryInfo(AuthParamBlockPtr paramBlock, Boolean async)
  4329. ;
  4330.     IF ¬ GENERATINGCFM THEN
  4331.         Macro
  4332.         _OCESetupChangeDirectoryInfo
  4333.             move.w    #$21B,-(sp)
  4334.             dc.w     $AA5E
  4335.         EndM
  4336.     ELSE
  4337.         IMPORT_CFM_FUNCTION    OCESetupChangeDirectoryInfo
  4338.     ENDIF
  4339.  
  4340. ;
  4341. ; pascal OSErr OCESetupRemoveDirectoryInfo(AuthParamBlockPtr paramBlock, Boolean async)
  4342. ;
  4343.     IF ¬ GENERATINGCFM THEN
  4344.         Macro
  4345.         _OCESetupRemoveDirectoryInfo
  4346.             move.w    #$20D,-(sp)
  4347.             dc.w     $AA5E
  4348.         EndM
  4349.     ELSE
  4350.         IMPORT_CFM_FUNCTION    OCESetupRemoveDirectoryInfo
  4351.     ENDIF
  4352.  
  4353. ;
  4354. ; pascal OSErr OCESetupGetDirectoryInfo(AuthParamBlockPtr paramBlock, Boolean async)
  4355. ;
  4356.     IF ¬ GENERATINGCFM THEN
  4357.         Macro
  4358.         _OCESetupGetDirectoryInfo
  4359.             move.w    #$20E,-(sp)
  4360.             dc.w     $AA5E
  4361.         EndM
  4362.     ELSE
  4363.         IMPORT_CFM_FUNCTION    OCESetupGetDirectoryInfo
  4364.     ENDIF
  4365.  
  4366. ;
  4367. ; pascal OSErr DirAddRecord(DirParamBlockPtr paramBlock, Boolean async)
  4368. ;
  4369.     IF ¬ GENERATINGCFM THEN
  4370.         Macro
  4371.         _DirAddRecord
  4372.             move.w    #$109,-(sp)
  4373.             dc.w     $AA5E
  4374.         EndM
  4375.     ELSE
  4376.         IMPORT_CFM_FUNCTION    DirAddRecord
  4377.     ENDIF
  4378.  
  4379. ;
  4380. ; pascal OSErr DirDeleteRecord(DirParamBlockPtr paramBlock, Boolean async)
  4381. ;
  4382.     IF ¬ GENERATINGCFM THEN
  4383.         Macro
  4384.         _DirDeleteRecord
  4385.             move.w    #$10A,-(sp)
  4386.             dc.w     $AA5E
  4387.         EndM
  4388.     ELSE
  4389.         IMPORT_CFM_FUNCTION    DirDeleteRecord
  4390.     ENDIF
  4391.  
  4392. ;
  4393. ; pascal OSErr DirEnumerateGet(DirParamBlockPtr paramBlock, Boolean async)
  4394. ;
  4395.     IF ¬ GENERATINGCFM THEN
  4396.         Macro
  4397.         _DirEnumerateGet
  4398.             move.w    #$111,-(sp)
  4399.             dc.w     $AA5E
  4400.         EndM
  4401.     ELSE
  4402.         IMPORT_CFM_FUNCTION    DirEnumerateGet
  4403.     ENDIF
  4404.  
  4405. ;
  4406. ; pascal OSErr DirEnumerateParse(DirParamBlockPtr paramBlock, Boolean async)
  4407. ;
  4408.     IF ¬ GENERATINGCFM THEN
  4409.         Macro
  4410.         _DirEnumerateParse
  4411.             move.w    #$101,-(sp)
  4412.             dc.w     $AA5E
  4413.         EndM
  4414.     ELSE
  4415.         IMPORT_CFM_FUNCTION    DirEnumerateParse
  4416.     ENDIF
  4417.  
  4418. ;
  4419. ; pascal OSErr DirFindRecordGet(DirParamBlockPtr paramBlock, Boolean async)
  4420. ;
  4421.     IF ¬ GENERATINGCFM THEN
  4422.         Macro
  4423.         _DirFindRecordGet
  4424.             move.w    #$140,-(sp)
  4425.             dc.w     $AA5E
  4426.         EndM
  4427.     ELSE
  4428.         IMPORT_CFM_FUNCTION    DirFindRecordGet
  4429.     ENDIF
  4430.  
  4431. ;
  4432. ; pascal OSErr DirFindRecordParse(DirParamBlockPtr paramBlock, Boolean async)
  4433. ;
  4434.     IF ¬ GENERATINGCFM THEN
  4435.         Macro
  4436.         _DirFindRecordParse
  4437.             move.w    #$141,-(sp)
  4438.             dc.w     $AA5E
  4439.         EndM
  4440.     ELSE
  4441.         IMPORT_CFM_FUNCTION    DirFindRecordParse
  4442.     ENDIF
  4443.  
  4444. ;
  4445. ; pascal OSErr DirLookupGet(DirParamBlockPtr paramBlock, Boolean async)
  4446. ;
  4447.     IF ¬ GENERATINGCFM THEN
  4448.         Macro
  4449.         _DirLookupGet
  4450.             move.w    #$117,-(sp)
  4451.             dc.w     $AA5E
  4452.         EndM
  4453.     ELSE
  4454.         IMPORT_CFM_FUNCTION    DirLookupGet
  4455.     ENDIF
  4456.  
  4457. ;
  4458. ; pascal OSErr DirLookupParse(DirParamBlockPtr paramBlock, Boolean async)
  4459. ;
  4460.     IF ¬ GENERATINGCFM THEN
  4461.         Macro
  4462.         _DirLookupParse
  4463.             move.w    #$102,-(sp)
  4464.             dc.w     $AA5E
  4465.         EndM
  4466.     ELSE
  4467.         IMPORT_CFM_FUNCTION    DirLookupParse
  4468.     ENDIF
  4469.  
  4470. ;
  4471. ; pascal OSErr DirAddAttributeValue(DirParamBlockPtr paramBlock, Boolean async)
  4472. ;
  4473.     IF ¬ GENERATINGCFM THEN
  4474.         Macro
  4475.         _DirAddAttributeValue
  4476.             move.w    #$10B,-(sp)
  4477.             dc.w     $AA5E
  4478.         EndM
  4479.     ELSE
  4480.         IMPORT_CFM_FUNCTION    DirAddAttributeValue
  4481.     ENDIF
  4482.  
  4483. ;
  4484. ; pascal OSErr DirDeleteAttributeValue(DirParamBlockPtr paramBlock, Boolean async)
  4485. ;
  4486.     IF ¬ GENERATINGCFM THEN
  4487.         Macro
  4488.         _DirDeleteAttributeValue
  4489.             move.w    #$10C,-(sp)
  4490.             dc.w     $AA5E
  4491.         EndM
  4492.     ELSE
  4493.         IMPORT_CFM_FUNCTION    DirDeleteAttributeValue
  4494.     ENDIF
  4495.  
  4496. ;
  4497. ; pascal OSErr DirDeleteAttributeType(DirParamBlockPtr paramBlock, Boolean async)
  4498. ;
  4499.     IF ¬ GENERATINGCFM THEN
  4500.         Macro
  4501.         _DirDeleteAttributeType
  4502.             move.w    #$130,-(sp)
  4503.             dc.w     $AA5E
  4504.         EndM
  4505.     ELSE
  4506.         IMPORT_CFM_FUNCTION    DirDeleteAttributeType
  4507.     ENDIF
  4508.  
  4509. ;
  4510. ; pascal OSErr DirChangeAttributeValue(DirParamBlockPtr paramBlock, Boolean async)
  4511. ;
  4512.     IF ¬ GENERATINGCFM THEN
  4513.         Macro
  4514.         _DirChangeAttributeValue
  4515.             move.w    #$10D,-(sp)
  4516.             dc.w     $AA5E
  4517.         EndM
  4518.     ELSE
  4519.         IMPORT_CFM_FUNCTION    DirChangeAttributeValue
  4520.     ENDIF
  4521.  
  4522. ;
  4523. ; pascal OSErr DirVerifyAttributeValue(DirParamBlockPtr paramBlock, Boolean async)
  4524. ;
  4525.     IF ¬ GENERATINGCFM THEN
  4526.         Macro
  4527.         _DirVerifyAttributeValue
  4528.             move.w    #$10E,-(sp)
  4529.             dc.w     $AA5E
  4530.         EndM
  4531.     ELSE
  4532.         IMPORT_CFM_FUNCTION    DirVerifyAttributeValue
  4533.     ENDIF
  4534.  
  4535. ;
  4536. ; pascal OSErr DirFindValue(DirParamBlockPtr paramBlock, Boolean async)
  4537. ;
  4538.     IF ¬ GENERATINGCFM THEN
  4539.         Macro
  4540.         _DirFindValue
  4541.             move.w    #$126,-(sp)
  4542.             dc.w     $AA5E
  4543.         EndM
  4544.     ELSE
  4545.         IMPORT_CFM_FUNCTION    DirFindValue
  4546.     ENDIF
  4547.  
  4548. ;
  4549. ; pascal OSErr DirEnumerateAttributeTypesGet(DirParamBlockPtr paramBlock, Boolean async)
  4550. ;
  4551.     IF ¬ GENERATINGCFM THEN
  4552.         Macro
  4553.         _DirEnumerateAttributeTypesGet
  4554.             move.w    #$112,-(sp)
  4555.             dc.w     $AA5E
  4556.         EndM
  4557.     ELSE
  4558.         IMPORT_CFM_FUNCTION    DirEnumerateAttributeTypesGet
  4559.     ENDIF
  4560.  
  4561. ;
  4562. ; pascal OSErr DirEnumerateAttributeTypesParse(DirParamBlockPtr paramBlock, Boolean async)
  4563. ;
  4564.     IF ¬ GENERATINGCFM THEN
  4565.         Macro
  4566.         _DirEnumerateAttributeTypesParse
  4567.             move.w    #$103,-(sp)
  4568.             dc.w     $AA5E
  4569.         EndM
  4570.     ELSE
  4571.         IMPORT_CFM_FUNCTION    DirEnumerateAttributeTypesParse
  4572.     ENDIF
  4573.  
  4574. ;
  4575. ; pascal OSErr DirAddPseudonym(DirParamBlockPtr paramBlock, Boolean async)
  4576. ;
  4577.     IF ¬ GENERATINGCFM THEN
  4578.         Macro
  4579.         _DirAddPseudonym
  4580.             move.w    #$10F,-(sp)
  4581.             dc.w     $AA5E
  4582.         EndM
  4583.     ELSE
  4584.         IMPORT_CFM_FUNCTION    DirAddPseudonym
  4585.     ENDIF
  4586.  
  4587. ;
  4588. ; pascal OSErr DirDeletePseudonym(DirParamBlockPtr paramBlock, Boolean async)
  4589. ;
  4590.     IF ¬ GENERATINGCFM THEN
  4591.         Macro
  4592.         _DirDeletePseudonym
  4593.             move.w    #$110,-(sp)
  4594.             dc.w     $AA5E
  4595.         EndM
  4596.     ELSE
  4597.         IMPORT_CFM_FUNCTION    DirDeletePseudonym
  4598.     ENDIF
  4599.  
  4600. ;
  4601. ; pascal OSErr DirAddAlias(DirParamBlockPtr paramBlock, Boolean async)
  4602. ;
  4603.     IF ¬ GENERATINGCFM THEN
  4604.         Macro
  4605.         _DirAddAlias
  4606.             move.w    #$11C,-(sp)
  4607.             dc.w     $AA5E
  4608.         EndM
  4609.     ELSE
  4610.         IMPORT_CFM_FUNCTION    DirAddAlias
  4611.     ENDIF
  4612.  
  4613. ;
  4614. ; pascal OSErr DirEnumeratePseudonymGet(DirParamBlockPtr paramBlock, Boolean async)
  4615. ;
  4616.     IF ¬ GENERATINGCFM THEN
  4617.         Macro
  4618.         _DirEnumeratePseudonymGet
  4619.             move.w    #$113,-(sp)
  4620.             dc.w     $AA5E
  4621.         EndM
  4622.     ELSE
  4623.         IMPORT_CFM_FUNCTION    DirEnumeratePseudonymGet
  4624.     ENDIF
  4625.  
  4626. ;
  4627. ; pascal OSErr DirEnumeratePseudonymParse(DirParamBlockPtr paramBlock, Boolean async)
  4628. ;
  4629.     IF ¬ GENERATINGCFM THEN
  4630.         Macro
  4631.         _DirEnumeratePseudonymParse
  4632.             move.w    #$104,-(sp)
  4633.             dc.w     $AA5E
  4634.         EndM
  4635.     ELSE
  4636.         IMPORT_CFM_FUNCTION    DirEnumeratePseudonymParse
  4637.     ENDIF
  4638.  
  4639. ;
  4640. ; pascal OSErr DirGetNameAndType(DirParamBlockPtr paramBlock, Boolean async)
  4641. ;
  4642.     IF ¬ GENERATINGCFM THEN
  4643.         Macro
  4644.         _DirGetNameAndType
  4645.             move.w    #$114,-(sp)
  4646.             dc.w     $AA5E
  4647.         EndM
  4648.     ELSE
  4649.         IMPORT_CFM_FUNCTION    DirGetNameAndType
  4650.     ENDIF
  4651.  
  4652. ;
  4653. ; pascal OSErr DirSetNameAndType(DirParamBlockPtr paramBlock, Boolean async)
  4654. ;
  4655.     IF ¬ GENERATINGCFM THEN
  4656.         Macro
  4657.         _DirSetNameAndType
  4658.             move.w    #$115,-(sp)
  4659.             dc.w     $AA5E
  4660.         EndM
  4661.     ELSE
  4662.         IMPORT_CFM_FUNCTION    DirSetNameAndType
  4663.     ENDIF
  4664.  
  4665. ;
  4666. ; pascal OSErr DirGetRecordMetaInfo(DirParamBlockPtr paramBlock, Boolean async)
  4667. ;
  4668.     IF ¬ GENERATINGCFM THEN
  4669.         Macro
  4670.         _DirGetRecordMetaInfo
  4671.             move.w    #$116,-(sp)
  4672.             dc.w     $AA5E
  4673.         EndM
  4674.     ELSE
  4675.         IMPORT_CFM_FUNCTION    DirGetRecordMetaInfo
  4676.     ENDIF
  4677.  
  4678. ;
  4679. ; pascal OSErr DirGetDNodeMetaInfo(DirParamBlockPtr paramBlock, Boolean async)
  4680. ;
  4681.     IF ¬ GENERATINGCFM THEN
  4682.         Macro
  4683.         _DirGetDNodeMetaInfo
  4684.             move.w    #$118,-(sp)
  4685.             dc.w     $AA5E
  4686.         EndM
  4687.     ELSE
  4688.         IMPORT_CFM_FUNCTION    DirGetDNodeMetaInfo
  4689.     ENDIF
  4690.  
  4691. ;
  4692. ; pascal OSErr DirGetDirectoryInfo(DirParamBlockPtr paramBlock, Boolean async)
  4693. ;
  4694.     IF ¬ GENERATINGCFM THEN
  4695.         Macro
  4696.         _DirGetDirectoryInfo
  4697.             move.w    #$119,-(sp)
  4698.             dc.w     $AA5E
  4699.         EndM
  4700.     ELSE
  4701.         IMPORT_CFM_FUNCTION    DirGetDirectoryInfo
  4702.     ENDIF
  4703.  
  4704. ;
  4705. ; pascal OSErr DirGetDNodeAccessControlGet(DirParamBlockPtr paramBlock, Boolean async)
  4706. ;
  4707.     IF ¬ GENERATINGCFM THEN
  4708.         Macro
  4709.         _DirGetDNodeAccessControlGet
  4710.             move.w    #$12A,-(sp)
  4711.             dc.w     $AA5E
  4712.         EndM
  4713.     ELSE
  4714.         IMPORT_CFM_FUNCTION    DirGetDNodeAccessControlGet
  4715.     ENDIF
  4716.  
  4717. ;
  4718. ; pascal OSErr DirGetDNodeAccessControlParse(DirParamBlockPtr paramBlock, Boolean async)
  4719. ;
  4720.     IF ¬ GENERATINGCFM THEN
  4721.         Macro
  4722.         _DirGetDNodeAccessControlParse
  4723.             move.w    #$12F,-(sp)
  4724.             dc.w     $AA5E
  4725.         EndM
  4726.     ELSE
  4727.         IMPORT_CFM_FUNCTION    DirGetDNodeAccessControlParse
  4728.     ENDIF
  4729.  
  4730. ;
  4731. ; pascal OSErr DirGetRecordAccessControlGet(DirParamBlockPtr paramBlock, Boolean async)
  4732. ;
  4733.     IF ¬ GENERATINGCFM THEN
  4734.         Macro
  4735.         _DirGetRecordAccessControlGet
  4736.             move.w    #$12C,-(sp)
  4737.             dc.w     $AA5E
  4738.         EndM
  4739.     ELSE
  4740.         IMPORT_CFM_FUNCTION    DirGetRecordAccessControlGet
  4741.     ENDIF
  4742.  
  4743. ;
  4744. ; pascal OSErr DirGetRecordAccessControlParse(DirParamBlockPtr paramBlock, Boolean async)
  4745. ;
  4746.     IF ¬ GENERATINGCFM THEN
  4747.         Macro
  4748.         _DirGetRecordAccessControlParse
  4749.             move.w    #$134,-(sp)
  4750.             dc.w     $AA5E
  4751.         EndM
  4752.     ELSE
  4753.         IMPORT_CFM_FUNCTION    DirGetRecordAccessControlParse
  4754.     ENDIF
  4755.  
  4756. ;
  4757. ; pascal OSErr DirGetAttributeAccessControlGet(DirParamBlockPtr paramBlock, Boolean async)
  4758. ;
  4759.     IF ¬ GENERATINGCFM THEN
  4760.         Macro
  4761.         _DirGetAttributeAccessControlGet
  4762.             move.w    #$12E,-(sp)
  4763.             dc.w     $AA5E
  4764.         EndM
  4765.     ELSE
  4766.         IMPORT_CFM_FUNCTION    DirGetAttributeAccessControlGet
  4767.     ENDIF
  4768.  
  4769. ;
  4770. ; pascal OSErr DirGetAttributeAccessControlParse(DirParamBlockPtr paramBlock, Boolean async)
  4771. ;
  4772.     IF ¬ GENERATINGCFM THEN
  4773.         Macro
  4774.         _DirGetAttributeAccessControlParse
  4775.             move.w    #$138,-(sp)
  4776.             dc.w     $AA5E
  4777.         EndM
  4778.     ELSE
  4779.         IMPORT_CFM_FUNCTION    DirGetAttributeAccessControlParse
  4780.     ENDIF
  4781.  
  4782. ;
  4783. ; pascal OSErr DirEnumerateDirectoriesGet(DirParamBlockPtr paramBlock, Boolean async)
  4784. ;
  4785.     IF ¬ GENERATINGCFM THEN
  4786.         Macro
  4787.         _DirEnumerateDirectoriesGet
  4788.             move.w    #$11A,-(sp)
  4789.             dc.w     $AA5E
  4790.         EndM
  4791.     ELSE
  4792.         IMPORT_CFM_FUNCTION    DirEnumerateDirectoriesGet
  4793.     ENDIF
  4794.  
  4795. ;
  4796. ; pascal OSErr DirEnumerateDirectoriesParse(DirParamBlockPtr paramBlock, Boolean async)
  4797. ;
  4798.     IF ¬ GENERATINGCFM THEN
  4799.         Macro
  4800.         _DirEnumerateDirectoriesParse
  4801.             move.w    #$106,-(sp)
  4802.             dc.w     $AA5E
  4803.         EndM
  4804.     ELSE
  4805.         IMPORT_CFM_FUNCTION    DirEnumerateDirectoriesParse
  4806.     ENDIF
  4807.  
  4808. ;
  4809. ; pascal OSErr DirMapPathNameToDNodeNumber(DirParamBlockPtr paramBlock, Boolean async)
  4810. ;
  4811.     IF ¬ GENERATINGCFM THEN
  4812.         Macro
  4813.         _DirMapPathNameToDNodeNumber
  4814.             move.w    #$122,-(sp)
  4815.             dc.w     $AA5E
  4816.         EndM
  4817.     ELSE
  4818.         IMPORT_CFM_FUNCTION    DirMapPathNameToDNodeNumber
  4819.     ENDIF
  4820.  
  4821. ;
  4822. ; pascal OSErr DirMapDNodeNumberToPathName(DirParamBlockPtr paramBlock, Boolean async)
  4823. ;
  4824.     IF ¬ GENERATINGCFM THEN
  4825.         Macro
  4826.         _DirMapDNodeNumberToPathName
  4827.             move.w    #$123,-(sp)
  4828.             dc.w     $AA5E
  4829.         EndM
  4830.     ELSE
  4831.         IMPORT_CFM_FUNCTION    DirMapDNodeNumberToPathName
  4832.     ENDIF
  4833.  
  4834. ;
  4835. ; pascal OSErr DirGetLocalNetworkSpec(DirParamBlockPtr paramBlock, Boolean async)
  4836. ;
  4837.     IF ¬ GENERATINGCFM THEN
  4838.         Macro
  4839.         _DirGetLocalNetworkSpec
  4840.             move.w    #$124,-(sp)
  4841.             dc.w     $AA5E
  4842.         EndM
  4843.     ELSE
  4844.         IMPORT_CFM_FUNCTION    DirGetLocalNetworkSpec
  4845.     ENDIF
  4846.  
  4847. ;
  4848. ; pascal OSErr DirGetDNodeInfo(DirParamBlockPtr paramBlock, Boolean async)
  4849. ;
  4850.     IF ¬ GENERATINGCFM THEN
  4851.         Macro
  4852.         _DirGetDNodeInfo
  4853.             move.w    #$125,-(sp)
  4854.             dc.w     $AA5E
  4855.         EndM
  4856.     ELSE
  4857.         IMPORT_CFM_FUNCTION    DirGetDNodeInfo
  4858.     ENDIF
  4859.  
  4860. ;  Trap Dispatchers for Personal Catalog and CSAM Extensions 
  4861. ;
  4862. ; pascal OSErr DirCreatePersonalDirectory(DirParamBlockPtr paramBlock)
  4863. ;
  4864.     IF ¬ GENERATINGCFM THEN
  4865.         Macro
  4866.         _DirCreatePersonalDirectory
  4867.             moveq    #0,d0
  4868.             dc.w     $1F00
  4869.             move.w    #$11F,-(sp)
  4870.             dc.w     $AA5E
  4871.         EndM
  4872.     ELSE
  4873.         IMPORT_CFM_FUNCTION    DirCreatePersonalDirectory
  4874.     ENDIF
  4875.  
  4876. ;
  4877. ; pascal OSErr DirOpenPersonalDirectory(DirParamBlockPtr paramBlock)
  4878. ;
  4879.     IF ¬ GENERATINGCFM THEN
  4880.         Macro
  4881.         _DirOpenPersonalDirectory
  4882.             moveq    #0,d0
  4883.             dc.w     $1F00
  4884.             move.w    #$11E,-(sp)
  4885.             dc.w     $AA5E
  4886.         EndM
  4887.     ELSE
  4888.         IMPORT_CFM_FUNCTION    DirOpenPersonalDirectory
  4889.     ENDIF
  4890.  
  4891. ;
  4892. ; pascal OSErr DirClosePersonalDirectory(DirParamBlockPtr paramBlock)
  4893. ;
  4894.     IF ¬ GENERATINGCFM THEN
  4895.         Macro
  4896.         _DirClosePersonalDirectory
  4897.             moveq    #0,d0
  4898.             dc.w     $1F00
  4899.             move.w    #$131,-(sp)
  4900.             dc.w     $AA5E
  4901.         EndM
  4902.     ELSE
  4903.         IMPORT_CFM_FUNCTION    DirClosePersonalDirectory
  4904.     ENDIF
  4905.  
  4906. ;
  4907. ; pascal OSErr DirMakePersonalDirectoryRLI(DirParamBlockPtr paramBlock)
  4908. ;
  4909.     IF ¬ GENERATINGCFM THEN
  4910.         Macro
  4911.         _DirMakePersonalDirectoryRLI
  4912.             moveq    #0,d0
  4913.             dc.w     $1F00
  4914.             move.w    #$132,-(sp)
  4915.             dc.w     $AA5E
  4916.         EndM
  4917.     ELSE
  4918.         IMPORT_CFM_FUNCTION    DirMakePersonalDirectoryRLI
  4919.     ENDIF
  4920.  
  4921. ;
  4922. ; pascal OSErr DirAddDSAM(DirParamBlockPtr paramBlock)
  4923. ;
  4924.     IF ¬ GENERATINGCFM THEN
  4925.         Macro
  4926.         _DirAddDSAM
  4927.             moveq    #0,d0
  4928.             dc.w     $1F00
  4929.             move.w    #$11D,-(sp)
  4930.             dc.w     $AA5E
  4931.         EndM
  4932.     ELSE
  4933.         IMPORT_CFM_FUNCTION    DirAddDSAM
  4934.     ENDIF
  4935.  
  4936. ;
  4937. ; pascal OSErr DirInstantiateDSAM(DirParamBlockPtr paramBlock)
  4938. ;
  4939.     IF ¬ GENERATINGCFM THEN
  4940.         Macro
  4941.         _DirInstantiateDSAM
  4942.             moveq    #0,d0
  4943.             dc.w     $1F00
  4944.             move.w    #$127,-(sp)
  4945.             dc.w     $AA5E
  4946.         EndM
  4947.     ELSE
  4948.         IMPORT_CFM_FUNCTION    DirInstantiateDSAM
  4949.     ENDIF
  4950.  
  4951. ;
  4952. ; pascal OSErr DirRemoveDSAM(DirParamBlockPtr paramBlock)
  4953. ;
  4954.     IF ¬ GENERATINGCFM THEN
  4955.         Macro
  4956.         _DirRemoveDSAM
  4957.             moveq    #0,d0
  4958.             dc.w     $1F00
  4959.             move.w    #$120,-(sp)
  4960.             dc.w     $AA5E
  4961.         EndM
  4962.     ELSE
  4963.         IMPORT_CFM_FUNCTION    DirRemoveDSAM
  4964.     ENDIF
  4965.  
  4966. ;
  4967. ; pascal OSErr DirAddDSAMDirectory(DirParamBlockPtr paramBlock, Boolean async)
  4968. ;
  4969.     IF ¬ GENERATINGCFM THEN
  4970.         Macro
  4971.         _DirAddDSAMDirectory
  4972.             move.w    #$133,-(sp)
  4973.             dc.w     $AA5E
  4974.         EndM
  4975.     ELSE
  4976.         IMPORT_CFM_FUNCTION    DirAddDSAMDirectory
  4977.     ENDIF
  4978.  
  4979. ;
  4980. ; pascal OSErr DirGetExtendedDirectoriesInfo(DirParamBlockPtr paramBlock, Boolean async)
  4981. ;
  4982.     IF ¬ GENERATINGCFM THEN
  4983.         Macro
  4984.         _DirGetExtendedDirectoriesInfo
  4985.             move.w    #$136,-(sp)
  4986.             dc.w     $AA5E
  4987.         EndM
  4988.     ELSE
  4989.         IMPORT_CFM_FUNCTION    DirGetExtendedDirectoriesInfo
  4990.     ENDIF
  4991.  
  4992. ;
  4993. ; pascal OSErr DirGetDirectoryIcon(DirParamBlockPtr paramBlock, Boolean async)
  4994. ;
  4995.     IF ¬ GENERATINGCFM THEN
  4996.         Macro
  4997.         _DirGetDirectoryIcon
  4998.             move.w    #$121,-(sp)
  4999.             dc.w     $AA5E
  5000.         EndM
  5001.     ELSE
  5002.         IMPORT_CFM_FUNCTION    DirGetDirectoryIcon
  5003.     ENDIF
  5004.  
  5005. ;
  5006. ; pascal OSErr DirAddADAPDirectory(DirParamBlockPtr paramBlock, Boolean async)
  5007. ;
  5008.     IF ¬ GENERATINGCFM THEN
  5009.         Macro
  5010.         _DirAddADAPDirectory
  5011.             move.w    #$137,-(sp)
  5012.             dc.w     $AA5E
  5013.         EndM
  5014.     ELSE
  5015.         IMPORT_CFM_FUNCTION    DirAddADAPDirectory
  5016.     ENDIF
  5017.  
  5018. ;
  5019. ; pascal OSErr DirRemoveDirectory(DirParamBlockPtr paramBlock, Boolean async)
  5020. ;
  5021.     IF ¬ GENERATINGCFM THEN
  5022.         Macro
  5023.         _DirRemoveDirectory
  5024.             move.w    #$135,-(sp)
  5025.             dc.w     $AA5E
  5026.         EndM
  5027.     ELSE
  5028.         IMPORT_CFM_FUNCTION    DirRemoveDirectory
  5029.     ENDIF
  5030.  
  5031. ;
  5032. ; pascal OSErr DirNetSearchADAPDirectoriesGet(DirParamBlockPtr paramBlock, Boolean async)
  5033. ;
  5034.     IF ¬ GENERATINGCFM THEN
  5035.         Macro
  5036.         _DirNetSearchADAPDirectoriesGet
  5037.             move.w    #$108,-(sp)
  5038.             dc.w     $AA5E
  5039.         EndM
  5040.     ELSE
  5041.         IMPORT_CFM_FUNCTION    DirNetSearchADAPDirectoriesGet
  5042.     ENDIF
  5043.  
  5044. ;
  5045. ; pascal OSErr DirNetSearchADAPDirectoriesParse(DirParamBlockPtr paramBlock, Boolean async)
  5046. ;
  5047.     IF ¬ GENERATINGCFM THEN
  5048.         Macro
  5049.         _DirNetSearchADAPDirectoriesParse
  5050.             move.w    #$105,-(sp)
  5051.             dc.w     $AA5E
  5052.         EndM
  5053.     ELSE
  5054.         IMPORT_CFM_FUNCTION    DirNetSearchADAPDirectoriesParse
  5055.     ENDIF
  5056.  
  5057. ;
  5058. ; pascal OSErr DirFindADAPDirectoryByNetSearch(DirParamBlockPtr paramBlock, Boolean async)
  5059. ;
  5060.     IF ¬ GENERATINGCFM THEN
  5061.         Macro
  5062.         _DirFindADAPDirectoryByNetSearch
  5063.             move.w    #$107,-(sp)
  5064.             dc.w     $AA5E
  5065.         EndM
  5066.     ELSE
  5067.         IMPORT_CFM_FUNCTION    DirFindADAPDirectoryByNetSearch
  5068.     ENDIF
  5069.  
  5070. ;
  5071. ; pascal OSErr DirGetOCESetupRefNum(DirParamBlockPtr paramBlock, Boolean async)
  5072. ;
  5073.     IF ¬ GENERATINGCFM THEN
  5074.         Macro
  5075.         _DirGetOCESetupRefNum
  5076.             move.w    #$128,-(sp)
  5077.             dc.w     $AA5E
  5078.         EndM
  5079.     ELSE
  5080.         IMPORT_CFM_FUNCTION    DirGetOCESetupRefNum
  5081.     ENDIF
  5082.  
  5083. ;
  5084. ; pascal OSErr DirAbort(DirParamBlockPtr paramBlock)
  5085. ;
  5086.     IF ¬ GENERATINGCFM THEN
  5087.         Macro
  5088.         _DirAbort
  5089.             moveq    #0,d0
  5090.             dc.w     $1F00
  5091.             move.w    #$11B,-(sp)
  5092.             dc.w     $AA5E
  5093.         EndM
  5094.     ELSE
  5095.         IMPORT_CFM_FUNCTION    DirAbort
  5096.     ENDIF
  5097.  
  5098.     ENDIF ; __OCEAUTHDIR__
  5099.